diff --git a/api.go b/api.go
index 859452e..fed9e55 100644
--- a/api.go
+++ b/api.go
@@ -55,7 +55,7 @@
 
 const deploymentsEndpoint = "/deployments"
 
-func initAPI() {
+func InitAPI() {
 	services.API().HandleFunc(deploymentsEndpoint, apiGetCurrentDeployments).Methods("GET")
 	services.API().HandleFunc(deploymentsEndpoint, apiSetDeploymentResults).Methods("POST")
 }
diff --git a/apidGatewayDeploy_suite_test.go b/apidGatewayDeploy_suite_test.go
index d63d0f7..3ce174c 100644
--- a/apidGatewayDeploy_suite_test.go
+++ b/apidGatewayDeploy_suite_test.go
@@ -36,9 +36,9 @@
 
 	db, err := data.DB()
 	Expect(err).NotTo(HaveOccurred())
-	err = initDB(db)
+	err = InitDB(db)
 	Expect(err).NotTo(HaveOccurred())
-	setDB(db)
+	SetDB(db)
 
 	router := apid.API().Router()
 	// fake an unreliable bundle repo
diff --git a/cmd/apidGatewayDeploy/main.go b/cmd/apidGatewayDeploy/main.go
index 10e1989..4cb1163 100644
--- a/cmd/apidGatewayDeploy/main.go
+++ b/cmd/apidGatewayDeploy/main.go
@@ -99,6 +99,12 @@
 	if err != nil {
 		return err
 	}
+	apiGatewayDeploy.SetDB(db)
+
+	err = apiGatewayDeploy.InitDB(db)
+	if err != nil {
+		return err
+	}
 
 	tx, err := db.Begin()
 	if err != nil {
@@ -116,5 +122,7 @@
 		return err
 	}
 
+	apiGatewayDeploy.InitAPI()
+
 	return nil
 }
\ No newline at end of file
diff --git a/data.go b/data.go
index d0f6785..d21070a 100644
--- a/data.go
+++ b/data.go
@@ -35,7 +35,7 @@
 	Exec(query string, args ...interface{}) (sql.Result, error)
 }
 
-func initDB(db apid.DB) error {
+func InitDB(db apid.DB) error {
 	_, err := db.Exec(`
 	CREATE TABLE IF NOT EXISTS etag (
 		value integer
@@ -77,10 +77,10 @@
 	return db
 }
 
-func setDB(db apid.DB) {
+func SetDB(db apid.DB) {
 	dbMux.Lock()
 	if unsafeDB == nil { // init API when DB is initialized
-		go initAPI()
+		go InitAPI()
 	}
 	unsafeDB = db
 	dbMux.Unlock()
@@ -109,7 +109,10 @@
 func getETag() (string, error) {
 
 	var eTag string
-	err := getDB().QueryRow("SELECT value FROM etag").Scan(&eTag)
+	db := getDB()
+	row := db.QueryRow("SELECT value FROM etag")
+	err := row.Scan(&eTag)
+	//err := getDB().QueryRow("SELECT value FROM etag").Scan(&eTag)
 	if err != nil {
 		log.Errorf("select etag failed: %v", err)
 		return "", err
diff --git a/listener.go b/listener.go
index 246e525..3b57542 100644
--- a/listener.go
+++ b/listener.go
@@ -50,7 +50,7 @@
 		log.Panicf("Unable to access database: %v", err)
 	}
 
-	err = initDB(db)
+	err = InitDB(db)
 	if err != nil {
 		log.Panicf("Unable to initialize database: %v", err)
 	}
@@ -83,7 +83,7 @@
 		log.Panicf("Error committing Snapshot change: %v", err)
 	}
 
-	setDB(db)
+	SetDB(db)
 	log.Debug("Snapshot processed")
 }
 
