reformat code
diff --git a/apigee_sync.go b/apigee_sync.go
index 10745de..26d8047 100644
--- a/apigee_sync.go
+++ b/apigee_sync.go
@@ -39,7 +39,7 @@
 
 	if apidInfo.LastSnapshot != "" {
 		snapshot := startOnLocalSnapshot(apidInfo.LastSnapshot)
-		processSnapshot(snapshot)
+		listenerMan.processSnapshot(snapshot)
 		events.EmitWithCallback(ApigeeSyncEventSelector, snapshot, func(event apid.Event) {
 			apidChangeManager.pollChangeWithBackoff()
 		})
diff --git a/apigee_sync_test.go b/apigee_sync_test.go
index d81ec32..02aac01 100644
--- a/apigee_sync_test.go
+++ b/apigee_sync_test.go
@@ -303,7 +303,7 @@
 		 */
 		It("Should be able to handle duplicate snapshot during bootstrap", func() {
 			initializeContext()
-			apidTokenManager = createSimpleTokenManager()
+			apidTokenManager = createTokenManager()
 			apidTokenManager.start()
 			apidSnapshotManager = createSnapShotManager()
 			//events.Listen(ApigeeSyncEventSelector, &handler{})
diff --git a/changes.go b/changes.go
index 993613f..6724922 100644
--- a/changes.go
+++ b/changes.go
@@ -35,15 +35,21 @@
 	// 0 for pollChangeWithBackoff() not launched, 1 for launched
 	isLaunched *int32
 	quitChan   chan bool
+	dbm        dbManagerInterface
+	lm         listenerManagerInterface
+	sm         snapShotManagerInterface
 }
 
-func createChangeManager() *pollChangeManager {
+func createChangeManager(dbm dbManagerInterface, lm listenerManagerInterface, sm snapShotManagerInterface) *pollChangeManager {
 	isClosedInt := int32(0)
 	isLaunchedInt := int32(0)
 	return &pollChangeManager{
 		isClosed:   &isClosedInt,
 		quitChan:   make(chan bool),
 		isLaunched: &isLaunchedInt,
+		dbm:        dbm,
+		lm:         lm,
+		sm:         sm,
 	}
 }
 
@@ -69,7 +75,7 @@
 		go func() {
 			c.quitChan <- true
 			apidTokenManager.close()
-			<-apidSnapshotManager.close()
+			<-c.sm.close()
 			log.Debug("change manager closed")
 			finishChan <- false
 		}()
@@ -80,7 +86,7 @@
 	go func() {
 		c.quitChan <- true
 		apidTokenManager.close()
-		<-apidSnapshotManager.close()
+		<-c.sm.close()
 		log.Debug("change manager closed")
 		finishChan <- true
 	}()
@@ -120,7 +126,7 @@
 	 * Check to see if we have lastSequence already saved in the DB,
 	 * in which case, it has to be used to prevent re-reading same data
 	 */
-	lastSequence = getLastSequence()
+	lastSequence = c.dbm.getLastSequence()
 
 	for {
 		select {
@@ -150,7 +156,7 @@
 	log.Debug("polling...")
 
 	/* Find the scopes associated with the config id */
-	scopes := findScopesForId(apidInfo.ClusterID)
+	scopes := c.dbm.findScopesForId(apidInfo.ClusterID)
 	v := url.Values{}
 
 	/* Sequence added to the query if available */
@@ -252,7 +258,7 @@
 
 	/* If valid data present, Emit to plugins */
 	if len(resp.Changes) > 0 {
-		processChangeList(&resp)
+		c.lm.processChangeList(&resp)
 		select {
 		case <-time.After(httpTimeout):
 			log.Panic("Timeout. Plugins failed to respond to changes.")
@@ -262,13 +268,17 @@
 		log.Debugf("No Changes detected for Scopes: %s", scopes)
 	}
 
-	updateSequence(resp.LastSequence)
+	lastSequence = resp.LastSequence
+	err = c.dbm.updateLastSequence(resp.LastSequence)
+	if err != nil {
+		log.Panic("Unable to update Sequence in DB")
+	}
 
 	/*
 	 * Check to see if there was any change in scope. If found, handle it
 	 * by getting a new snapshot
 	 */
-	newScopes := findScopesForId(apidInfo.ClusterID)
+	newScopes := c.dbm.findScopesForId(apidInfo.ClusterID)
 	cs := scopeChanged(newScopes, scopes)
 	if cs != nil {
 		return cs
@@ -287,9 +297,9 @@
 		log.Debugf("handleChangeServerError: changeManager has been closed")
 		return
 	}
-	if c, ok := err.(changeServerError); ok {
-		log.Debugf("%s. Fetch a new snapshot to sync...", c.Code)
-		apidSnapshotManager.downloadDataSnapshot()
+	if ce, ok := err.(changeServerError); ok {
+		log.Debugf("%s. Fetch a new snapshot to sync...", ce.Code)
+		c.sm.downloadDataSnapshot()
 	} else {
 		log.Debugf("Error connecting to changeserver: %v", err)
 	}
@@ -332,15 +342,6 @@
 	return seqCurr.Compare(seqPrev)
 }
 
-func updateSequence(seq string) {
-	lastSequence = seq
-	err := updateLastSequence(seq)
-	if err != nil {
-		log.Panic("Unable to update Sequence in DB")
-	}
-
-}
-
 /*
  * Returns nil if the two arrays have matching contents
  */
diff --git a/data.go b/data.go
index 74c69df..4f63058 100644
--- a/data.go
+++ b/data.go
@@ -28,8 +28,7 @@
 )
 
 var (
-	unsafeDB apid.DB
-	dbMux    sync.RWMutex
+	dbMux sync.RWMutex
 )
 
 type dataApidCluster struct {
@@ -48,8 +47,12 @@
 2. The versioned DB is used for APID_CLUSTER & DATA_SCOPE
 (Currently, the snapshot never changes, but this is future-proof)
 */
-func initDB(db apid.DB) error {
-	_, err := db.Exec(`
+func (dbc *dbManager) initDefaultDb() error {
+	db, err := dbc.getDefaultDb()
+	if err != nil {
+		return err
+	}
+	_, err = db.Exec(`
 	CREATE TABLE IF NOT EXISTS APID (
 	    instance_id text,
 	    apid_cluster_id text,
@@ -65,21 +68,30 @@
 	return nil
 }
 
-func getDB() apid.DB {
-	dbMux.RLock()
-	db := unsafeDB
-	dbMux.RUnlock()
-	return db
+type dbManager struct {
+	db    apid.DB
+	dbMux sync.RWMutex
 }
 
-func setDB(db apid.DB) {
+func (dbc *dbManager) getDb() apid.DB {
+	dbc.dbMux.RLock()
+	defer dbc.dbMux.RUnlock()
+	return dbc.db
+}
+
+func (dbc *dbManager) getDefaultDb() (apid.DB, error) {
+	db, err := dataService.DB()
+	return db, err
+}
+
+func (dbc *dbManager) setDb(db apid.DB) {
 	dbMux.Lock()
-	unsafeDB = db
-	dbMux.Unlock()
+	defer dbMux.Unlock()
+	dbc.db = db
 }
 
 //TODO if len(rows) > 1000, chunk it up and exec multiple inserts in the txn
-func insert(tableName string, rows []common.Row, txn *sql.Tx) bool {
+func (dbc *dbManager) insert(tableName string, rows []common.Row, txn *sql.Tx) bool {
 
 	if len(rows) == 0 {
 		return false
@@ -133,8 +145,8 @@
 	return values
 }
 
-func _delete(tableName string, rows []common.Row, txn *sql.Tx) bool {
-	pkeys, err := getPkeysForTable(tableName)
+func (dbc *dbManager) deleteRowsFromTable(tableName string, rows []common.Row, txn *sql.Tx) bool {
+	pkeys, err := dbc.getPkeysForTable(tableName)
 	sort.Strings(pkeys)
 	if len(pkeys) == 0 || err != nil {
 		log.Errorf("DELETE No primary keys found for table. %s", tableName)
@@ -200,8 +212,8 @@
 
 }
 
-func update(tableName string, oldRows, newRows []common.Row, txn *sql.Tx) bool {
-	pkeys, err := getPkeysForTable(tableName)
+func (dbc *dbManager) update(tableName string, oldRows, newRows []common.Row, txn *sql.Tx) bool {
+	pkeys, err := dbc.getPkeysForTable(tableName)
 	if len(pkeys) == 0 || err != nil {
 		log.Errorf("UPDATE No primary keys found for table.", tableName)
 		return false
@@ -333,8 +345,8 @@
 	return sql
 }
 
-func getPkeysForTable(tableName string) ([]string, error) {
-	db := getDB()
+func (dbc *dbManager) getPkeysForTable(tableName string) ([]string, error) {
+	db := dbc.getDb()
 	normalizedTableName := normalizeTableName(tableName)
 	sql := "SELECT columnName FROM _transicator_tables WHERE tableName=$1 AND primaryKey ORDER BY columnName;"
 	rows, err := db.Query(sql, normalizedTableName)
@@ -367,12 +379,12 @@
  * For the given apidConfigId, this function will retrieve all the distinch scopes
  * associated with it. Distinct, because scope is already a collection of the tenants.
  */
-func findScopesForId(configId string) (scopes []string) {
+func (dbc *dbManager) findScopesForId(configId string) (scopes []string) {
 
 	log.Debugf("findScopesForId: %s", configId)
 
 	var scope sql.NullString
-	db := getDB()
+	db := dbc.getDb()
 
 	query := `
 		SELECT scope FROM edgex_data_scope WHERE apid_cluster_id = $1
@@ -402,9 +414,9 @@
 /*
  * Retrieve SnapshotInfo for the given apidConfigId from apid_config table
  */
-func getLastSequence() (lastSequence string) {
+func (dbc *dbManager) getLastSequence() (lastSequence string) {
 
-	err := getDB().QueryRow("select last_sequence from EDGEX_APID_CLUSTER LIMIT 1").Scan(&lastSequence)
+	err := dbc.getDb().QueryRow("select last_sequence from EDGEX_APID_CLUSTER LIMIT 1").Scan(&lastSequence)
 	if err != nil && err != sql.ErrNoRows {
 		log.Panicf("Failed to query EDGEX_APID_CLUSTER: %v", err)
 		return
@@ -418,11 +430,11 @@
  * Persist the last change Id each time a change has been successfully
  * processed by the plugin(s)
  */
-func updateLastSequence(lastSequence string) error {
+func (dbc *dbManager) updateLastSequence(lastSequence string) error {
 
 	log.Debugf("updateLastSequence: %s", lastSequence)
 
-	stmt, err := getDB().Prepare("UPDATE EDGEX_APID_CLUSTER SET last_sequence=$1;")
+	stmt, err := dbc.getDb().Prepare("UPDATE EDGEX_APID_CLUSTER SET last_sequence=$1;")
 	if err != nil {
 		log.Errorf("UPDATE EDGEX_APID_CLUSTER Failed: %v", err)
 		return err
@@ -440,7 +452,7 @@
 	return nil
 }
 
-func getApidInstanceInfo() (info apidInstanceInfo, err error) {
+func (dbc *dbManager) getApidInstanceInfo() (info apidInstanceInfo, err error) {
 	info.InstanceName = config.GetString(configName)
 	info.ClusterID = config.GetString(configApidClusterId)
 
@@ -482,10 +494,10 @@
 	return
 }
 
-func updateApidInstanceInfo() error {
+func (dbc *dbManager) updateApidInstanceInfo() error {
 
 	// always use default database for this
-	db, err := dataService.DB()
+	db, err := dbc.getDefaultDb()
 	if err != nil {
 		return err
 	}
diff --git a/init.go b/init.go
index 245d4af..e4be5aa 100644
--- a/init.go
+++ b/init.go
@@ -50,11 +50,12 @@
 	events              apid.EventsService
 	apidInfo            apidInstanceInfo
 	newInstanceID       bool
-	apidTokenManager    tokenManager
-	apidChangeManager   changeManager
-	apidSnapshotManager snapShotManager
+	apidTokenManager    TokenManagerInterface
+	apidChangeManager   changeManagerInterface
+	apidSnapshotManager snapShotManagerInterface
 	httpclient          *http.Client
-
+	dbMan               dbManagerInterface
+	listenerMan         listenerManagerInterface
 	/* Set during post plugin initialization
 	 * set this as a default, so that it's guaranteed to be valid even if postInitPlugins isn't called
 	 */
@@ -102,18 +103,22 @@
 		},
 	}
 
-	// set up default database
-	db, err := dataService.DB()
-	if err != nil {
-		return fmt.Errorf("Unable to access DB: %v", err)
-	}
-	err = initDB(db)
-	if err != nil {
-		return fmt.Errorf("Unable to access DB: %v", err)
-	}
-	setDB(db)
+	dbMan = &dbManager{}
 
-	apidInfo, err = getApidInstanceInfo()
+	// set up default database
+	err := dbMan.initDefaultDb()
+	if err != nil {
+		return fmt.Errorf("Unable to access DB: %v", err)
+	}
+
+	db, err := dbMan.getDefaultDb()
+	if err != nil {
+		return fmt.Errorf("Unable to access DB: %v", err)
+	}
+
+	dbMan.setDb(db)
+
+	apidInfo, err = dbMan.getApidInstanceInfo()
 	if err != nil {
 		return fmt.Errorf("Unable to get apid instance info: %v", err)
 	}
@@ -127,9 +132,12 @@
 }
 
 func createManagers() {
-	apidSnapshotManager = createSnapShotManager()
-	apidChangeManager = createChangeManager()
-	apidTokenManager = createSimpleTokenManager()
+	listenerMan = &listenerManager{
+		dbm: dbMan,
+	}
+	apidSnapshotManager = createSnapShotManager(dbMan, listenerMan)
+	apidChangeManager = createChangeManager(dbMan, listenerMan, apidSnapshotManager)
+	apidTokenManager = createTokenManager(dbMan)
 }
 
 func checkForRequiredValues() error {
diff --git a/listener.go b/listener.go
index 9c002f2..c269b8f 100644
--- a/listener.go
+++ b/listener.go
@@ -24,7 +24,11 @@
 	LISTENER_TABLE_DATA_SCOPE   = "edgex.data_scope"
 )
 
-func processSnapshot(snapshot *common.Snapshot) {
+type listenerManager struct {
+	dbm dbManagerInterface
+}
+
+func (lm *listenerManager) processSnapshot(snapshot *common.Snapshot) {
 	log.Debugf("Snapshot received. Switching to DB version: %s", snapshot.SnapshotInfo)
 
 	db, err := dataService.DBVersion(snapshot.SnapshotInfo)
@@ -32,21 +36,21 @@
 		log.Panicf("Unable to access database: %v", err)
 	}
 
-	processSqliteSnapshot(db)
+	lm.processSqliteSnapshot(db)
 
 	//update apid instance info
 	apidInfo.LastSnapshot = snapshot.SnapshotInfo
-	err = updateApidInstanceInfo()
+	err = lm.dbm.updateApidInstanceInfo()
 	if err != nil {
 		log.Panicf("Unable to update instance info: %v", err)
 	}
 
-	setDB(db)
+	lm.dbm.setDb(db)
 	log.Debugf("Snapshot processed: %s", snapshot.SnapshotInfo)
 
 }
 
-func processSqliteSnapshot(db apid.DB) {
+func (lm *listenerManager) processSqliteSnapshot(db apid.DB) {
 
 	var numApidClusters int
 	apidClusters, err := db.Query("SELECT COUNT(*) FROM edgex_apid_cluster")
@@ -74,11 +78,11 @@
 	}
 }
 
-func processChangeList(changes *common.ChangeList) bool {
+func (lm *listenerManager) processChangeList(changes *common.ChangeList) bool {
 
 	ok := false
 
-	tx, err := getDB().Begin()
+	tx, err := lm.dbm.getDb().Begin()
 	if err != nil {
 		log.Panicf("Error processing ChangeList: %v", err)
 		return ok
@@ -93,14 +97,14 @@
 		}
 		switch change.Operation {
 		case common.Insert:
-			ok = insert(change.Table, []common.Row{change.NewRow}, tx)
+			ok = lm.dbm.insert(change.Table, []common.Row{change.NewRow}, tx)
 		case common.Update:
 			if change.Table == LISTENER_TABLE_DATA_SCOPE {
 				log.Panicf("illegal operation: %s for %s", change.Operation, change.Table)
 			}
-			ok = update(change.Table, []common.Row{change.OldRow}, []common.Row{change.NewRow}, tx)
+			ok = lm.dbm.update(change.Table, []common.Row{change.OldRow}, []common.Row{change.NewRow}, tx)
 		case common.Delete:
-			ok = _delete(change.Table, []common.Row{change.OldRow}, tx)
+			ok = lm.dbm.deleteRowsFromTable(change.Table, []common.Row{change.OldRow}, tx)
 		}
 		if !ok {
 			log.Error("Sql Operation error. Operation rollbacked")
diff --git a/managerInterfaces.go b/managerInterfaces.go
index 5022bdd..53a4492 100644
--- a/managerInterfaces.go
+++ b/managerInterfaces.go
@@ -15,11 +15,13 @@
 package apidApigeeSync
 
 import (
+	"database/sql"
+	"github.com/30x/apid-core"
 	"github.com/apigee-labs/transicator/common"
 	"net/url"
 )
 
-type tokenManager interface {
+type TokenManagerInterface interface {
 	getBearerToken() string
 	invalidateToken() error
 	getToken() *OauthToken
@@ -28,7 +30,7 @@
 	start()
 }
 
-type snapShotManager interface {
+type snapShotManagerInterface interface {
 	close() <-chan bool
 	downloadBootSnapshot()
 	storeBootSnapshot(snapshot *common.Snapshot)
@@ -37,7 +39,29 @@
 	downloadSnapshot(isBoot bool, scopes []string, snapshot *common.Snapshot) error
 }
 
-type changeManager interface {
+type changeManagerInterface interface {
 	close() <-chan bool
 	pollChangeWithBackoff()
 }
+
+type dbManagerInterface interface {
+	initDefaultDb() error
+	setDb(apid.DB)
+	getDb() apid.DB
+	insert(tableName string, rows []common.Row, txn *sql.Tx) bool
+	deleteRowsFromTable(tableName string, rows []common.Row, txn *sql.Tx) bool
+	update(tableName string, oldRows, newRows []common.Row, txn *sql.Tx) bool
+	getPkeysForTable(tableName string) ([]string, error)
+	findScopesForId(configId string) (scopes []string)
+	getDefaultDb() (apid.DB, error)
+	updateApidInstanceInfo() error
+	getApidInstanceInfo() (info apidInstanceInfo, err error)
+	getLastSequence() string
+	updateLastSequence(lastSequence string) error
+}
+
+type listenerManagerInterface interface {
+	processSnapshot(snapshot *common.Snapshot)
+	processSqliteSnapshot(db apid.DB)
+	processChangeList(changes *common.ChangeList) bool
+}
diff --git a/snapshot.go b/snapshot.go
index 3040b24..d7fbacd 100644
--- a/snapshot.go
+++ b/snapshot.go
@@ -29,7 +29,7 @@
 	"time"
 )
 
-type simpleSnapShotManager struct {
+type snapShotManager struct {
 	// to send quit signal to the downloading thread
 	quitChan chan bool
 	// to mark the graceful close of snapshotManager
@@ -38,16 +38,20 @@
 	isClosed *int32
 	// make sure close() returns immediately if there's no downloading/processing snapshot
 	isDownloading *int32
+	lm            listenerManagerInterface
+	dbm           dbManagerInterface
 }
 
-func createSnapShotManager() *simpleSnapShotManager {
+func createSnapShotManager(dbm dbManagerInterface, lm listenerManagerInterface) *snapShotManager {
 	isClosedInt := int32(0)
 	isDownloadingInt := int32(0)
-	return &simpleSnapShotManager{
+	return &snapShotManager{
 		quitChan:      make(chan bool, 1),
 		finishChan:    make(chan bool, 1),
 		isClosed:      &isClosedInt,
 		isDownloading: &isDownloadingInt,
+		dbm:           dbm,
+		lm:            lm,
 	}
 }
 
@@ -57,7 +61,7 @@
  * use <- close() for blocking close
  * should only be called by pollChangeManager, because pollChangeManager is dependent on it
  */
-func (s *simpleSnapShotManager) close() <-chan bool {
+func (s *snapShotManager) close() <-chan bool {
 	//has been closed before
 	if atomic.SwapInt32(s.isClosed, 1) == int32(1) {
 		log.Error("snapShotManager: close() called on a closed snapShotManager!")
@@ -77,7 +81,7 @@
 }
 
 // retrieve boot information: apid_config and apid_config_scope
-func (s *simpleSnapShotManager) downloadBootSnapshot() {
+func (s *snapShotManager) downloadBootSnapshot() {
 	if atomic.SwapInt32(s.isDownloading, 1) == int32(1) {
 		log.Panic("downloadBootSnapshot: only 1 thread can download snapshot at the same time!")
 	}
@@ -113,12 +117,12 @@
 	s.storeBootSnapshot(snapshot)
 }
 
-func (s *simpleSnapShotManager) storeBootSnapshot(snapshot *common.Snapshot) {
-	processSnapshot(snapshot)
+func (s *snapShotManager) storeBootSnapshot(snapshot *common.Snapshot) {
+	s.lm.processSnapshot(snapshot)
 }
 
 // use the scope IDs from the boot snapshot to get all the data associated with the scopes
-func (s *simpleSnapShotManager) downloadDataSnapshot() {
+func (s *snapShotManager) downloadDataSnapshot() {
 	if atomic.SwapInt32(s.isDownloading, 1) == int32(1) {
 		log.Panic("downloadDataSnapshot: only 1 thread can download snapshot at the same time!")
 	}
@@ -132,7 +136,7 @@
 
 	log.Debug("download Snapshot for data scopes")
 
-	scopes := findScopesForId(apidInfo.ClusterID)
+	scopes := s.dbm.findScopesForId(apidInfo.ClusterID)
 	scopes = append(scopes, apidInfo.ClusterID)
 	snapshot := &common.Snapshot{}
 	err := s.downloadSnapshot(false, scopes, snapshot)
@@ -146,7 +150,7 @@
 	s.storeDataSnapshot(snapshot)
 }
 
-func (s *simpleSnapShotManager) storeDataSnapshot(snapshot *common.Snapshot) {
+func (s *snapShotManager) storeDataSnapshot(snapshot *common.Snapshot) {
 	knownTables = extractTablesFromSnapshot(snapshot)
 
 	_, err := dataService.DBVersion(snapshot.SnapshotInfo)
@@ -154,7 +158,7 @@
 		log.Panicf("Database inaccessible: %v", err)
 	}
 
-	processSnapshot(snapshot)
+	s.lm.processSnapshot(snapshot)
 	log.Info("Emitting Snapshot to plugins")
 
 	select {
@@ -226,7 +230,7 @@
 // a blocking method
 // will keep retrying with backoff until success
 
-func (s *simpleSnapShotManager) downloadSnapshot(isBoot bool, scopes []string, snapshot *common.Snapshot) error {
+func (s *snapShotManager) downloadSnapshot(isBoot bool, scopes []string, snapshot *common.Snapshot) error {
 	// if closed
 	if atomic.LoadInt32(s.isClosed) == int32(1) {
 		log.Warn("Trying to download snapshot with a closed snapShotManager")
diff --git a/token.go b/token.go
index 1612025..f10fff8 100644
--- a/token.go
+++ b/token.go
@@ -39,10 +39,10 @@
    man.close()
 */
 
-func createSimpleTokenManager() *simpleTokenManager {
+func createTokenManager(dbm dbManagerInterface) *tokenManager {
 	isClosedInt := int32(0)
 
-	t := &simpleTokenManager{
+	t := &tokenManager{
 		quitPollingForToken: make(chan bool, 1),
 		closed:              make(chan bool),
 		getTokenChan:        make(chan bool),
@@ -50,11 +50,12 @@
 		returnTokenChan:     make(chan *OauthToken),
 		invalidateDone:      make(chan bool),
 		isClosed:            &isClosedInt,
+		dbm:                 dbm,
 	}
 	return t
 }
 
-type simpleTokenManager struct {
+type tokenManager struct {
 	token               *OauthToken
 	isClosed            *int32
 	quitPollingForToken chan bool
@@ -64,19 +65,20 @@
 	refreshTimer        <-chan time.Time
 	returnTokenChan     chan *OauthToken
 	invalidateDone      chan bool
+	dbm                 dbManagerInterface
 }
 
-func (t *simpleTokenManager) start() {
+func (t *tokenManager) start() {
 	t.retrieveNewToken()
 	t.refreshTimer = time.After(t.token.refreshIn())
 	go t.maintainToken()
 }
 
-func (t *simpleTokenManager) getBearerToken() string {
+func (t *tokenManager) getBearerToken() string {
 	return t.getToken().AccessToken
 }
 
-func (t *simpleTokenManager) maintainToken() {
+func (t *tokenManager) maintainToken() {
 	for {
 		select {
 		case <-t.closed:
@@ -97,7 +99,7 @@
 }
 
 // will block until valid
-func (t *simpleTokenManager) invalidateToken() error {
+func (t *tokenManager) invalidateToken() error {
 	//has been closed
 	if atomic.LoadInt32(t.isClosed) == int32(1) {
 		log.Debug("TokenManager: invalidateToken() called on closed tokenManager")
@@ -109,7 +111,7 @@
 	return nil
 }
 
-func (t *simpleTokenManager) getToken() *OauthToken {
+func (t *tokenManager) getToken() *OauthToken {
 	//has been closed
 	if atomic.LoadInt32(t.isClosed) == int32(1) {
 		log.Debug("TokenManager: getToken() called on closed tokenManager")
@@ -123,7 +125,7 @@
  * blocking close() of tokenMan
  */
 
-func (t *simpleTokenManager) close() {
+func (t *tokenManager) close() {
 	//has been closed
 	if atomic.SwapInt32(t.isClosed, 1) == int32(1) {
 		log.Panic("TokenManager: close() has been called before!")
@@ -138,7 +140,7 @@
 }
 
 // don't call externally. will block until success.
-func (t *simpleTokenManager) retrieveNewToken() {
+func (t *tokenManager) retrieveNewToken() {
 
 	log.Debug("Getting OAuth token...")
 	uriString := config.GetString(configProxyServerBaseURI)
@@ -151,7 +153,7 @@
 	pollWithBackoff(t.quitPollingForToken, t.getRetrieveNewTokenClosure(uri), func(err error) { log.Errorf("Error getting new token : ", err) })
 }
 
-func (t *simpleTokenManager) getRetrieveNewTokenClosure(uri *url.URL) func(chan bool) error {
+func (t *tokenManager) getRetrieveNewTokenClosure(uri *url.URL) func(chan bool) error {
 	return func(_ chan bool) error {
 		form := url.Values{}
 		form.Set("grant_type", "client_credentials")
@@ -208,7 +210,7 @@
 
 		if newInstanceID {
 			newInstanceID = false
-			err = updateApidInstanceInfo()
+			err = t.dbm.updateApidInstanceInfo()
 			if err != nil {
 				log.Errorf("unable to unmarshal update apid instance info : %v", string(body), err)
 				return err
diff --git a/token_test.go b/token_test.go
index 85b71c7..66cd189 100644
--- a/token_test.go
+++ b/token_test.go
@@ -94,7 +94,7 @@
 				w.Write(body)
 			}))
 			config.Set(configProxyServerBaseURI, ts.URL)
-			testedTokenManager := createSimpleTokenManager()
+			testedTokenManager := createTokenManager()
 			testedTokenManager.start()
 			token := testedTokenManager.getToken()
 
@@ -123,7 +123,7 @@
 			}))
 			config.Set(configProxyServerBaseURI, ts.URL)
 
-			testedTokenManager := createSimpleTokenManager()
+			testedTokenManager := createTokenManager()
 			testedTokenManager.start()
 			token := testedTokenManager.getToken()
 			Expect(token.AccessToken).ToNot(BeEmpty())
@@ -163,7 +163,7 @@
 			}))
 
 			config.Set(configProxyServerBaseURI, ts.URL)
-			testedTokenManager := createSimpleTokenManager()
+			testedTokenManager := createTokenManager()
 			testedTokenManager.start()
 			testedTokenManager.getToken()
 
@@ -204,7 +204,7 @@
 			}))
 
 			config.Set(configProxyServerBaseURI, ts.URL)
-			testedTokenManager := createSimpleTokenManager()
+			testedTokenManager := createTokenManager()
 			testedTokenManager.start()
 			testedTokenManager.getToken()
 			testedTokenManager.invalidateToken()