diff --git a/dockertests/apid_config.yaml b/dockertests/apid_config.yaml
new file mode 100644
index 0000000..e4cd751
--- /dev/null
+++ b/dockertests/apid_config.yaml
@@ -0,0 +1,9 @@
+apigeesync_instance_name: SQLLITAPID
+apigeesync_snapshot_server_base: http://localhost:9001/
+apigeesync_change_server_base: http://localhost:9000/
+apigeesync_snapshot_proto: sqlite
+log_level: Debug
+apigeesync_consumer_key: 33f39JNLosF1mDOXJoCfbauchVzPrGrl
+apigeesync_consumer_secret: LAolGShAx6H3vfNF
+apigeesync_cluster_id: 4c6bb536-0d64-43ca-abae-17c08f1a7e58
+local_storage_path: /Users/haoming/go/src/github.com/apid/apidApigeeSync/tmp/sqlite
diff --git a/dockertests/dockerSetup.sh b/dockertests/dockerSetup.sh
index 8df2b5d..6ded35d 100755
--- a/dockertests/dockerSetup.sh
+++ b/dockertests/dockerSetup.sh
@@ -25,7 +25,6 @@
 TEST_PG_BASE=postgres://postgres:changeme@$DOCKER_IP:5432
 TEST_PG_URL=postgres://postgres:changeme@$DOCKER_IP:5432/edgex
 echo ${TEST_PG_URL}
-
 export APIGEE_SYNC_DOCKER_PG_URL=${TEST_PG_URL}
 export APIGEE_SYNC_DOCKER_IP=${DOCKER_IP}
 
@@ -47,8 +46,13 @@
 ssname=apidSync_test_ss
 csname=apidSync_test_cs
 
+# setup docker network
+docker network rm apidApigeeSync-docker-test || true
+docker network create apidApigeeSync-docker-test
+DOCKER_PG_URL=postgres://postgres:changeme@$pgname:5432/edgex
+echo $DOCKER_PG_URL
 # run PG
-docker run --name ${pgname} -p 5432:5432 -d -e POSTGRES_PASSWORD=changeme apigeelabs/transicator-postgres
+docker run --name ${pgname} -p 5432:5432 --network=apidApigeeSync-docker-test -d -e POSTGRES_PASSWORD=changeme apigeelabs/transicator-postgres
 
 # Wait for PG to be up -- it takes a few seconds
 while `true`
@@ -67,8 +71,8 @@
 psql -f ${WORK_DIR}/dockertests/user-setup.sql ${TEST_PG_URL}
 
 # run SS and CS
-docker run --name ${ssname} -d -p 9001:9001 apigeelabs/transicator-snapshot -p 9001 -u ${TEST_PG_URL}
-docker run --name ${csname} -d -p 9000:9000 apigeelabs/transicator-changeserver -p 9000 -u ${TEST_PG_URL} -s testslot
+docker run --name ${ssname} -d -p 9001:9001 --network=apidApigeeSync-docker-test apigeelabs/transicator-snapshot -p 9001 -u ${DOCKER_PG_URL}
+docker run --name ${csname} -d -p 9000:9000 --network=apidApigeeSync-docker-test apigeelabs/transicator-changeserver -p 9000 -u ${DOCKER_PG_URL} -s testslot
 
 # Wait for SS to be up
 while `true`
diff --git a/dockertests/docker_test.go b/dockertests/docker_test.go
index cefd28b..631e17a 100644
--- a/dockertests/docker_test.go
+++ b/dockertests/docker_test.go
@@ -18,6 +18,7 @@
 	"encoding/json"
 	"github.com/apid/apid-core"
 	"github.com/apid/apid-core/factory"
+	"github.com/apid/apidApigeeSync"
 	_ "github.com/apid/apidApigeeSync"
 	"github.com/apigee-labs/transicator/common"
 	. "github.com/onsi/ginkgo"
@@ -77,7 +78,7 @@
 	config.Set(configProxyServerBaseURI, testServer.URL)
 
 	// init plugin
-	apid.RegisterPlugin(initPlugin)
+	apid.RegisterPlugin(initPlugin, apidApigeeSync.PluginData)
 	apid.InitializePlugins("dockerTest")
 
 	<-initDone
@@ -263,6 +264,8 @@
 		updated:        t,
 		updatedBy:      testInitUser,
 		changeSelector: clusterId,
+		orgScope:       "org1",
+		envScope:       "env1",
 	}
 
 	bf := bundleConfigData{
diff --git a/dockertests/management_pg.go b/dockertests/management_pg.go
index bbe28e9..77bdf67 100644
--- a/dockertests/management_pg.go
+++ b/dockertests/management_pg.go
@@ -90,9 +90,11 @@
 			created_by,
 			updated,
 			updated_by,
-			_change_selector
+			_change_selector,
+			org_scope,
+			env_scope
 			)
-			VALUES($1,$2,$3,$4,$5,$6,$7,$8,$9,$10)`)
+			VALUES($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12)`)
 	if err != nil {
 		return err
 	}
@@ -108,6 +110,8 @@
 		ds.updated,
 		ds.updatedBy,
 		ds.changeSelector,
+		ds.orgScope,
+		ds.envScope,
 	)
 
 	return err
diff --git a/dockertests/master-schema.sql b/dockertests/master-schema.sql
index 756ff62..00f60d0 100644
--- a/dockertests/master-schema.sql
+++ b/dockertests/master-schema.sql
@@ -45,6 +45,8 @@
     updated timestamp without time zone,
     updated_by text,
     _change_selector text,
+    org_scope character varying(36) NOT NULL,
+    env_scope character varying(36) NOT NULL,
     CONSTRAINT data_scope_pkey PRIMARY KEY (id),
     CONSTRAINT data_scope_apid_cluster_id_fk FOREIGN KEY (apid_cluster_id)
           REFERENCES apid_cluster (id)
diff --git a/dockertests/pg_table_data.go b/dockertests/pg_table_data.go
index 0a1aecd..854e587 100644
--- a/dockertests/pg_table_data.go
+++ b/dockertests/pg_table_data.go
@@ -42,6 +42,8 @@
 	updated        time.Time
 	updatedBy      string
 	changeSelector string
+	orgScope       string
+	envScope       string
 }
 
 /* FOREIGN KEY (data_scope_id)
diff --git a/init.go b/init.go
index ac0eeb7..c6aa01f 100644
--- a/init.go
+++ b/init.go
@@ -72,7 +72,7 @@
 }
 
 func init() {
-	apid.RegisterPlugin(initPlugin, pluginData)
+	apid.RegisterPlugin(initPlugin, PluginData)
 }
 
 func initConfigDefaults() {
@@ -112,11 +112,6 @@
 	log = logger
 }
 
-/* initialization */
-func initConfigs(services apid.Services) error {
-
-	return nil
-}
 
 func initManagers(isOfflineMode bool) (*listenerManager, *ApiManager, error) {
 	// check for forward proxy
@@ -198,18 +193,18 @@
 
 	err := checkForRequiredValues(isOfflineMode)
 	if err != nil {
-		return pluginData, err
+		return PluginData, err
 	}
 	if err != nil {
-		return pluginData, err
+		return PluginData, err
 	}
 	listenerMan, apiMan, err := initManagers(isOfflineMode)
 	if err != nil {
-		return pluginData, err
+		return PluginData, err
 	}
 	listenerMan.init()
 	apiMan.InitAPI(apiService)
 
 	log.Debug("end init")
-	return pluginData, nil
+	return PluginData, nil
 }
diff --git a/init_test.go b/init_test.go
index f2063e4..bdd9fc7 100644
--- a/init_test.go
+++ b/init_test.go
@@ -54,7 +54,7 @@
 			Expect(apidInfo.InstanceName).To(Equal(testname))
 			Expect(me.listenerMap[apid.SystemEventsSelector]).ToNot(BeNil())
 			Expect(ma.handleMap[tokenEndpoint]).ToNot(BeNil())
-			Expect(pd).Should(Equal(pluginData))
+			Expect(pd).Should(Equal(PluginData))
 			Expect(apidInfo.IsNewInstance).Should(BeTrue())
 		})
 
diff --git a/pluginData.go b/pluginData.go
index c565c02..10b2dd0 100644
--- a/pluginData.go
+++ b/pluginData.go
@@ -16,7 +16,7 @@
 
 import "github.com/apid/apid-core"
 
-var pluginData = apid.PluginData{
+var PluginData = apid.PluginData{
 	Name:    "apidApigeeSync",
 	Version: "0.0.4",
 	ExtraData: map[string]interface{}{
diff --git a/token.go b/token.go
index bfd8900..c355a61 100644
--- a/token.go
+++ b/token.go
@@ -34,9 +34,7 @@
 Usage:
    man := createTokenManager()
    bearer := man.getBearerToken()
-   // will automatically update config(configBearerToken) for other modules
-   // optionally, when done...
-   man.close()
+   will automatically update config(configBearerToken) for other modules
 */
 
 func createApidTokenManager(isNewInstance bool) *apidTokenManager {
