diff --git a/.gitignore b/.gitignore
index 5e9f67b..3825b7a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,4 @@
 cover.html
 coverage.txt
+*.iml
+.idea
diff --git a/apidAnalytics_suite_test.go b/apidAnalytics_suite_test.go
index 46e2421..8a3cfbc 100644
--- a/apidAnalytics_suite_test.go
+++ b/apidAnalytics_suite_test.go
@@ -109,7 +109,7 @@
 
 func createTables(db apid.DB) {
 	_, err := db.Exec(`
-		CREATE TABLE IF NOT EXISTS api_product (
+		CREATE TABLE IF NOT EXISTS kms_api_product (
 		    id text,
 		    tenant_id text,
 		    name text,
@@ -128,7 +128,7 @@
 		    updated_at int64,
 		    updated_by text,
 		    PRIMARY KEY (tenant_id, id));
-		CREATE TABLE IF NOT EXISTS developer (
+		CREATE TABLE IF NOT EXISTS kms_developer (
 		    id text,
 		    tenant_id text,
 		    username text,
@@ -146,7 +146,7 @@
 		    updated_by text,
 		    PRIMARY KEY (tenant_id, id)
 		);
-		CREATE TABLE IF NOT EXISTS app (
+		CREATE TABLE IF NOT EXISTS kms_app (
 		    id text,
 		    tenant_id text,
 		    name text,
@@ -165,7 +165,7 @@
 		    _change_selector text,
 		    PRIMARY KEY (tenant_id, id)
 		);
-		CREATE TABLE IF NOT EXISTS app_credential_apiproduct_mapper (
+		CREATE TABLE IF NOT EXISTS kms_app_credential_apiproduct_mapper (
 		    tenant_id text,
 		    appcred_id text,
 		    app_id text,
@@ -182,7 +182,7 @@
 
 func createApidClusterTables(db apid.DB) {
 	_, err := db.Exec(`
-		CREATE TABLE apid_cluster (
+		CREATE TABLE edgex_apid_cluster (
 		    id text,
 		    instance_id text,
 		    name text,
@@ -197,7 +197,7 @@
 		    lastSequence text,
 		    PRIMARY KEY (id)
 		);
-		CREATE TABLE data_scope (
+		CREATE TABLE edgex_data_scope (
 		    id text,
 		    apid_cluster_id text,
 		    scope text,
@@ -220,7 +220,7 @@
 
 	txn, err := db.Begin()
 	Expect(err).ShouldNot(HaveOccurred())
-	txn.Exec("INSERT INTO APP_CREDENTIAL_APIPRODUCT_MAPPER (tenant_id,"+
+	txn.Exec("INSERT INTO kms_APP_CREDENTIAL_APIPRODUCT_MAPPER (tenant_id,"+
 		" appcred_id, app_id, apiprdt_id, status, _change_selector) "+
 		"VALUES"+
 		"($1,$2,$3,$4,$5,$6)",
@@ -232,7 +232,7 @@
 		"12345",
 	)
 
-	txn.Exec("INSERT INTO APP (id, tenant_id, name, developer_id) "+
+	txn.Exec("INSERT INTO kms_APP (id, tenant_id, name, developer_id) "+
 		"VALUES"+
 		"($1,$2,$3,$4)",
 		"testappid",
@@ -241,7 +241,7 @@
 		"testdeveloperid",
 	)
 
-	txn.Exec("INSERT INTO API_PRODUCT (id, tenant_id, name) "+
+	txn.Exec("INSERT INTO kms_API_PRODUCT (id, tenant_id, name) "+
 		"VALUES"+
 		"($1,$2,$3)",
 		"testproductid",
@@ -249,7 +249,7 @@
 		"testproduct",
 	)
 
-	txn.Exec("INSERT INTO DEVELOPER (id, tenant_id, username, email) "+
+	txn.Exec("INSERT INTO kms_DEVELOPER (id, tenant_id, username, email) "+
 		"VALUES"+
 		"($1,$2,$3,$4)",
 		"testdeveloperid",
@@ -258,7 +258,7 @@
 		"testdeveloper@test.com",
 	)
 
-	txn.Exec("INSERT INTO DATA_SCOPE (id, _change_selector, "+
+	txn.Exec("INSERT INTO edgex_DATA_SCOPE (id, _change_selector, "+
 		"apid_cluster_id, scope, org, env) "+
 		"VALUES"+
 		"($1,$2,$3,$4,$5,$6)",
diff --git a/common_helper.go b/common_helper.go
index b3a9a5f..803c649 100644
--- a/common_helper.go
+++ b/common_helper.go
@@ -135,7 +135,7 @@
 	var org, env, tenantId string
 
 	db := getDB()
-	error := db.QueryRow("SELECT env, org, scope FROM DATA_SCOPE"+
+	error := db.QueryRow("SELECT env, org, scope FROM edgex_DATA_SCOPE"+
 		" where id = ?", scopeuuid).Scan(&env, &org, &tenantId)
 
 	switch {
@@ -165,10 +165,10 @@
 
 	db := getDB()
 	sSql := "SELECT ap.name, a.name, d.username, d.email " +
-		"FROM APP_CREDENTIAL_APIPRODUCT_MAPPER as mp " +
-		"INNER JOIN API_PRODUCT as ap ON ap.id = mp.apiprdt_id " +
-		"INNER JOIN APP AS a ON a.id = mp.app_id " +
-		"INNER JOIN DEVELOPER as d ON d.id = a.developer_id " +
+		"FROM kms_APP_CREDENTIAL_APIPRODUCT_MAPPER as mp " +
+		"INNER JOIN kms_API_PRODUCT as ap ON ap.id = mp.apiprdt_id " +
+		"INNER JOIN kms_APP AS a ON a.id = mp.app_id " +
+		"INNER JOIN kms_DEVELOPER as d ON d.id = a.developer_id " +
 		"where mp.tenant_id = ? and mp.appcred_id = ?;"
 	error := db.QueryRow(sSql, tenantId, apiKey).
 		Scan(&apiProduct, &developerApp,
diff --git a/listener_test.go b/listener_test.go
index 6a027f5..d9918e6 100644
--- a/listener_test.go
+++ b/listener_test.go
@@ -86,7 +86,7 @@
 			It("insert/delete event should add/remove to/from cache if usecaching is true", func() {
 				txn, err := getDB().Begin()
 				Expect(err).ShouldNot(HaveOccurred())
-				txn.Exec("INSERT INTO DATA_SCOPE (id, _change_selector, apid_cluster_id, scope, org, env) "+
+				txn.Exec("INSERT INTO edgex_DATA_SCOPE (id, _change_selector, apid_cluster_id, scope, org, env) "+
 					"VALUES"+
 					"($1,$2,$3,$4,$5,$6)",
 					"i2",
@@ -128,7 +128,7 @@
 
 				txn, err = getDB().Begin()
 				Expect(err).ShouldNot(HaveOccurred())
-				txn.Exec("DELETE FROM DATA_SCOPE where id = 'i2'")
+				txn.Exec("DELETE FROM edgex_DATA_SCOPE where id = 'i2'")
 				txn.Commit()
 
 				delete := common.ChangeList{
