Minor updates to db logic
diff --git a/api_test.go b/api_test.go
index 566897f..ee10d70 100644
--- a/api_test.go
+++ b/api_test.go
@@ -160,6 +160,7 @@
 func insertTestData(db *sql.DB) {
 
 	for i := 0; i < 10; i++ {
+		var rows []common.Row
 		srvItems := common.Row{}
 		result := strconv.FormatInt(int64(i), 10)
 
@@ -192,11 +193,13 @@
 			Type:  1,
 		}
 		srvItems["tenant_id"] = scv
-		res := insertAPIproduct(srvItems, db)
+		rows = append(rows, srvItems)
+		res := insertAPIproducts(rows, db)
 		Expect(res).Should(BeTrue())
 	}
 
 	for i := 0; i < 10; i++ {
+		var rows []common.Row
 		srvItems := common.Row{}
 		result := strconv.FormatInt(int64(i), 10)
 
@@ -242,7 +245,8 @@
 		}
 		srvItems["tenant_id"] = scv
 
-		res := insertDeveloper(srvItems, db)
+		rows = append(rows, srvItems)
+		res := insertDevelopers(rows, db)
 		Expect(res).Should(BeTrue())
 	}
 
@@ -250,6 +254,7 @@
 	for i := 0; i < 10; i++ {
 		resulti := strconv.FormatInt(int64(i), 10)
 		for j = k; j < 10+k; j++ {
+			var rows []common.Row
 
 			srvItems := common.Row{}
 			resultj := strconv.FormatInt(int64(j), 10)
@@ -289,13 +294,15 @@
 				Type:  1,
 			}
 			srvItems["tenant_id"] = scv
-			res := insertApplication(srvItems, db)
+			rows = append(rows, srvItems)
+			res := insertApplications(rows, db)
 			Expect(res).Should(BeTrue())
 		}
 		k = j
 	}
 
 	for i := 0; i < 10; i++ {
+		var rows []common.Row
 		srvItems := common.Row{}
 		result := strconv.FormatInt(int64(i), 10)
 
@@ -328,11 +335,13 @@
 			Type:  1,
 		}
 		srvItems["tenant_id"] = scv
-		res := insertCredential(srvItems, db)
+		rows = append(rows, srvItems)
+		res := insertCredentials(rows, db)
 		Expect(res).Should(BeTrue())
 	}
 
 	for i := 0; i < 10; i++ {
+		var rows []common.Row
 		srvItems := common.Row{}
 		result := strconv.FormatInt(int64(i), 10)
 
@@ -369,7 +378,8 @@
 			Type:  1,
 		}
 		srvItems["tenant_id"] = scv
-		res := insertAPIProductMapper(srvItems, db)
+		rows = append(rows, srvItems)
+		res := insertAPIProductMappers(rows, db)
 		Expect(res).Should(BeTrue())
 	}
 
diff --git a/listener.go b/listener.go
index 91eb2a2..6ac0999 100644
--- a/listener.go
+++ b/listener.go
@@ -13,8 +13,6 @@
 	return "verifyAPIKey"
 }
 
-// todo: The following was basically just copied from old APID - needs review.
-
 func (h *handler) Handle(e apid.Event) {
 
 	snapData, ok := e.(*common.Snapshot)
@@ -56,7 +54,7 @@
 		case "kms.api_product":
 			res = insertAPIproducts(payload.Rows, db)
 		case "kms.app_credential_apiproduct_mapper":
-			res = insertApiProductMappers(payload.Rows, db)
+			res = insertAPIProductMappers(payload.Rows, db)
 		}
 		if res == false {
 			log.Error("Error encountered in Downloading Snapshot for VerifyApiKey")
@@ -269,7 +267,7 @@
 /*
  * Performs a bulk insert of all APP_CREDENTIAL_APIPRODUCT_MAPPER rows
  */
-func insertApiProductMappers(rows []common.Row, db *sql.DB) bool {
+func insertAPIProductMappers(rows []common.Row, db *sql.DB) bool {
 
 	var ApiProduct, AppId, EntityIdentifier, tenantId, Scope, Status string
 
@@ -333,6 +331,7 @@
 func processChange(changes *common.ChangeList) {
 
 	log.Debugf("apigeeSyncEvent: %d changes", len(changes.Changes))
+	var rows []common.Row
 
 	db, err := data.DB()
 	if err != nil {
@@ -340,12 +339,13 @@
 	}
 
 	for _, payload := range changes.Changes {
-
+		rows = nil
 		switch payload.Table {
 		case "kms.developer":
 			switch payload.Operation {
 			case 1:
-				insertDeveloper(payload.NewRow, db)
+				rows = append(rows, payload.NewRow)
+				insertDevelopers(rows, db)
 			case 2:
 				updateDeveloper(payload.NewRow, payload.OldRow, db)
 			case 3:
@@ -354,7 +354,8 @@
 		case "kms.app":
 			switch payload.Operation {
 			case 1:
-				insertApplication(payload.NewRow, db)
+				rows = append(rows, payload.NewRow)
+				insertApplications(rows, db)
 			case 2:
 				updateApplication(payload.NewRow, payload.OldRow, db)
 			case 3:
@@ -364,7 +365,8 @@
 		case "kms.app_credential":
 			switch payload.Operation {
 			case 1:
-				insertCredential(payload.NewRow, db)
+				rows = append(rows, payload.NewRow)
+				insertCredentials(rows, db)
 			case 2:
 				updateCredential(payload.NewRow, payload.OldRow, db)
 			case 3:
@@ -373,7 +375,8 @@
 		case "kms.api_product":
 			switch payload.Operation {
 			case 1:
-				insertAPIproduct(payload.NewRow, db)
+				rows = append(rows, payload.NewRow)
+				insertAPIproducts(rows, db)
 			case 2:
 				updateAPIproduct(payload.NewRow, payload.OldRow, db)
 			case 3:
@@ -383,7 +386,8 @@
 		case "kms.app_credential_apiproduct_mapper":
 			switch payload.Operation {
 			case 1:
-				insertAPIProductMapper(payload.NewRow, db)
+				rows = append(rows, payload.NewRow)
+				insertAPIProductMappers(rows, db)
 			case 2:
 				updateAPIproductMapper(payload.NewRow, payload.OldRow, db)
 			case 3:
@@ -394,235 +398,6 @@
 }
 
 /*
- * INSERT INTO APP_CREDENTIAL op
- */
-func insertCredential(ele common.Row, db *sql.DB) bool {
-
-	var scope, id, appId, consumerSecret, appstatus, status, tenantId string
-	var issuedAt int64
-
-	ele.Get("_apid_scope", &scope)
-	ele.Get("id", &id)
-	ele.Get("app_id", &appId)
-	ele.Get("consumer_secret", &consumerSecret)
-	ele.Get("app_status", &appstatus)
-	ele.Get("status", &status)
-	ele.Get("issued_at", &issuedAt)
-	ele.Get("tenant_id", &tenantId)
-
-	stmt, err := db.Prepare("INSERT INTO APP_CREDENTIAL (_apid_scope, id, app_id, consumer_secret, app_status, status, issued_at, tenant_id)VALUES($1,$2,$3,$4,$5,$6,$7,$8);")
-	if err != nil {
-		log.Error("INSERT CRED Failed: ", id, ", ", scope, ")", err)
-		return false
-	}
-	_, err = stmt.Exec(
-		scope,
-		id,
-		appId,
-		consumerSecret,
-		appstatus,
-		status,
-		issuedAt,
-		tenantId)
-
-	if err != nil {
-		log.Error("INSERT CRED Failed: ", id, ", ", scope, ")", err)
-		return false
-	} else {
-		log.Info("INSERT CRED Success: (", id, ", ", scope, ")")
-		return true
-	}
-
-}
-
-func insertAPIProductMapper(ele common.Row, db *sql.DB) bool {
-
-	var ApiProduct, AppId, EntityIdentifier, tenantId, Scope, Status string
-
-	ele.Get("apiprdt_id", &ApiProduct)
-	ele.Get("app_id", &AppId)
-	ele.Get("appcred_id", &EntityIdentifier)
-	ele.Get("tenant_id", &tenantId)
-	ele.Get("_apid_scope", &Scope)
-	ele.Get("status", &Status)
-
-	/*
-	 * If the credentials has been successfully inserted, insert the
-	 * mapping entries associated with the credential
-	 */
-
-	stmt, err := db.Prepare("INSERT INTO APP_CREDENTIAL_APIPRODUCT_MAPPER(apiprdt_id, app_id, appcred_id, tenant_id, _apid_scope, status) VALUES($1,$2,$3,$4,$5,$6);")
-	if err != nil {
-		log.Error("INSERT APP_CREDENTIAL_APIPRODUCT_MAPPER Failed: ", err)
-		return false
-	}
-	_, err = stmt.Exec(
-		ApiProduct,
-		AppId,
-		EntityIdentifier,
-		tenantId,
-		Scope,
-		Status)
-
-	if err != nil {
-		log.Error("INSERT APP_CREDENTIAL_APIPRODUCT_MAPPER Failed: (",
-			ApiProduct, ", ",
-			AppId, ", ",
-			EntityIdentifier, ", ",
-			tenantId, ", ",
-			Scope, ", ",
-			Status,
-			")",
-			err)
-		return false
-	} else {
-		log.Info("INSERT APP_CREDENTIAL_APIPRODUCT_MAPPER Success: (",
-			ApiProduct, ", ",
-			AppId, ", ",
-			EntityIdentifier, ", ",
-			tenantId, ", ",
-			Scope, ", ",
-			Status,
-			")")
-		return true
-	}
-}
-
-/*
- * INSERT INTO API product op
- */
-func insertAPIproduct(ele common.Row, db *sql.DB) bool {
-
-	var scope, apiProduct, res, env, tenantId string
-
-	ele.Get("_apid_scope", &scope)
-	ele.Get("id", &apiProduct)
-	ele.Get("api_resources", &res)
-	ele.Get("environments", &env)
-	ele.Get("tenant_id", &tenantId)
-
-	stmt, err := db.Prepare("INSERT INTO API_PRODUCT (id, api_resources, environments, tenant_id,_apid_scope) VALUES($1,$2,$3,$4,$5)")
-	if err != nil {
-		log.Error("INSERT API_PRODUCT Failed: ", err)
-		return false
-	}
-	_, err = stmt.Exec(
-		apiProduct,
-		res,
-		env,
-		tenantId,
-		scope)
-
-	if err != nil {
-		log.Error("INSERT API_PRODUCT Failed: (", apiProduct, ", ", tenantId, ")", err)
-		return false
-	} else {
-		log.Info("INSERT API_PRODUCT Success: (", apiProduct, ", ", tenantId, ")")
-		return true
-	}
-
-}
-
-/*
- * INSERT INTO APP op
- */
-func insertApplication(ele common.Row, db *sql.DB) bool {
-
-	var scope, EntityIdentifier, DeveloperId, CallbackUrl, Status, AppName, AppFamily, tenantId, CreatedBy, LastModifiedBy string
-	var CreatedAt, LastModifiedAt int64
-
-	ele.Get("_apid_scope", &scope)
-	ele.Get("id", &EntityIdentifier)
-	ele.Get("developer_id", &DeveloperId)
-	ele.Get("callback_url", &CallbackUrl)
-	ele.Get("status", &Status)
-	ele.Get("name", &AppName)
-	ele.Get("app_family", &AppFamily)
-	ele.Get("created_at", &CreatedAt)
-	ele.Get("created_by", &CreatedBy)
-	ele.Get("updated_at", &LastModifiedAt)
-	ele.Get("updated_by", &LastModifiedBy)
-	ele.Get("tenant_id", &tenantId)
-
-	stmt, err := db.Prepare("INSERT INTO APP (_apid_scope, id, developer_id,callback_url,status, name, app_family, created_at, created_by,updated_at, updated_by,tenant_id) VALUES($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12);")
-	if err != nil {
-		log.Error("INSERT APP Failed: ", err)
-		return false
-	}
-	_, err = stmt.Exec(
-		scope,
-		EntityIdentifier,
-		DeveloperId,
-		CallbackUrl,
-		Status,
-		AppName,
-		AppFamily,
-		CreatedAt,
-		CreatedBy,
-		LastModifiedAt,
-		LastModifiedBy,
-		tenantId)
-
-	if err != nil {
-		log.Error("INSERT APP Failed: (", EntityIdentifier, ", ", tenantId, ")", err)
-		return false
-	} else {
-		log.Info("INSERT APP Success: (", EntityIdentifier, ", ", tenantId, ")")
-		return true
-	}
-
-}
-
-/*
- * INSERT INTO DEVELOPER op
- */
-func insertDeveloper(ele common.Row, db *sql.DB) bool {
-	var scope, EntityIdentifier, Email, Status, UserName, FirstName, LastName, tenantId, CreatedBy, LastModifiedBy, Username string
-	var CreatedAt, LastModifiedAt int64
-
-	ele.Get("_apid_scope", &scope)
-	ele.Get("email", &Email)
-	ele.Get("id", &EntityIdentifier)
-	ele.Get("tenant_id", &tenantId)
-	ele.Get("status", &Status)
-	ele.Get("username", &Username)
-	ele.Get("first_name", &FirstName)
-	ele.Get("last_name", &LastName)
-	ele.Get("created_at", &CreatedAt)
-	ele.Get("created_by", &CreatedBy)
-	ele.Get("updated_at", &LastModifiedAt)
-	ele.Get("updated_by", &LastModifiedBy)
-
-	stmt, err := db.Prepare("INSERT INTO DEVELOPER (_apid_scope,email,id,tenant_id,status,username,first_name,last_name,created_at,created_by,updated_at,updated_by) VALUES($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12);")
-	if err != nil {
-		log.Error("INSERT DEVELOPER Failed: ", err)
-		return false
-	}
-
-	_, err = stmt.Exec(
-		scope,
-		Email,
-		EntityIdentifier,
-		tenantId,
-		Status,
-		UserName,
-		FirstName,
-		LastName,
-		CreatedAt,
-		CreatedBy,
-		LastModifiedAt,
-		LastModifiedBy)
-
-	if err != nil {
-		log.Error("INSERT DEVELOPER Failed: (", EntityIdentifier, ", ", scope, ")", err)
-		return false
-	} else {
-		log.Info("INSERT DEVELOPER Success: (", EntityIdentifier, ", ", scope, ")")
-		return true
-	}
-}
-
-/*
  * DELETE APP
  */
 func deleteApplication(ele common.Row, db *sql.DB) bool {