diff --git a/apidGatewayDeploy_suite_test.go b/apidGatewayDeploy_suite_test.go
index 803a8b3..dffb117 100644
--- a/apidGatewayDeploy_suite_test.go
+++ b/apidGatewayDeploy_suite_test.go
@@ -40,11 +40,12 @@
 	Expect(err).NotTo(HaveOccurred())
 	SetDB(db)
 
-	debounceDuration = 1 * time.Millisecond
+	debounceDuration = time.Millisecond
+	bundleCleanupDelay = time.Millisecond
 
 	router := apid.API().Router()
 	// fake an unreliable bundle repo
-	backOffMultiplier = 10 * time.Millisecond
+	backOffMultiplier = time.Millisecond
 	count := 1
 	router.HandleFunc("/bundles/{id}", func(w http.ResponseWriter, req *http.Request) {
 		count++
diff --git a/cmd/apidGatewayDeploy/main.go b/cmd/apidGatewayDeploy/main.go
index 546cc9d..46e75d4 100644
--- a/cmd/apidGatewayDeploy/main.go
+++ b/cmd/apidGatewayDeploy/main.go
@@ -1,14 +1,14 @@
 package main
 
 import (
+	"encoding/json"
 	"flag"
 	"github.com/30x/apid"
 	"github.com/30x/apid/factory"
+	"github.com/30x/apidGatewayDeploy"
 	_ "github.com/30x/apidGatewayDeploy"
 	"io/ioutil"
-	"github.com/30x/apidGatewayDeploy"
 	"os"
-	"encoding/json"
 )
 
 func main() {
@@ -33,7 +33,6 @@
 		defer os.RemoveAll(tmpDir)
 
 		configService.Set("data_path", tmpDir)
-		configService.Set("gatewaydeploy_bundle_dir", tmpDir) // todo: legacy?
 
 		if deploymentsFile != "" {
 			bytes, err := ioutil.ReadFile(deploymentsFile)
@@ -114,7 +113,6 @@
 			LocalBundleURI:     ad.URI,
 		}
 
-
 		err = apiGatewayDeploy.InsertDeployment(tx, dep)
 		if err != nil {
 			log.Error("Unable to insert deployment")
@@ -131,4 +129,4 @@
 	apiGatewayDeploy.InitAPI()
 
 	return nil
-}
\ No newline at end of file
+}
diff --git a/data.go b/data.go
index 42f6efd..0f8c412 100644
--- a/data.go
+++ b/data.go
@@ -65,7 +65,6 @@
 		PRIMARY KEY (id)
 	);
 	`)
-	// todo: is ID enough? must it be scoped by cluster id?
 	if err != nil {
 		return err
 	}
diff --git a/init.go b/init.go
index 74a8548..70cdae2 100644
--- a/init.go
+++ b/init.go
@@ -8,16 +8,18 @@
 )
 
 const (
-	configBundleDirKey     = "gatewaydeploy_bundle_dir"
-	configDebounceDuration = "gatewaydeploy_debounce_duration"
+	configBundleDirKey       = "gatewaydeploy_bundle_dir"
+	configDebounceDuration   = "gatewaydeploy_debounce_duration"
+	configBundleCleanupDelay = "gatewaydeploy_bundle_cleanup_delay"
 )
 
 var (
-	services   apid.Services
-	log        apid.LogService
-	data       apid.DataService
-	bundlePath string
-	debounceDuration time.Duration
+	services           apid.Services
+	log                apid.LogService
+	data               apid.DataService
+	bundlePath         string
+	debounceDuration   time.Duration
+	bundleCleanupDelay time.Duration
 )
 
 func init() {
@@ -31,13 +33,19 @@
 
 	config := services.Config()
 	config.SetDefault(configBundleDirKey, "bundles")
-	config.SetDefault(configDebounceDuration, 1 * time.Second)
+	config.SetDefault(configDebounceDuration, time.Second)
+	config.SetDefault(configBundleCleanupDelay, time.Minute)
 
 	debounceDuration = config.GetDuration(configDebounceDuration)
-	if debounceDuration < 1 * time.Millisecond {
+	if debounceDuration < time.Millisecond {
 		log.Panicf("%s must be a positive duration", configDebounceDuration)
 	}
 
+	bundleCleanupDelay = config.GetDuration(configBundleCleanupDelay)
+	if bundleCleanupDelay < time.Millisecond {
+		log.Panicf("%s must be a positive duration", configBundleCleanupDelay)
+	}
+
 	data = services.Data()
 
 	relativeBundlePath := config.GetString(configBundleDirKey)
diff --git a/listener.go b/listener.go
index 91f0fe4..889e74c 100644
--- a/listener.go
+++ b/listener.go
@@ -6,6 +6,7 @@
 	"github.com/30x/apid"
 	"github.com/apigee-labs/transicator/common"
 	"os"
+	"time"
 )
 
 const (
@@ -141,8 +142,7 @@
 		log.Debugf("will delete %d old bundles", len(bundlesToDelete))
 		go func() {
 			// give clients a minute to avoid conflicts
-			// todo: configurable time
-			//time.Sleep(1 * time.Minute)
+			time.Sleep(bundleCleanupDelay)
 			for _, b := range bundlesToDelete {
 				log.Debugf("removing old bundle: %v", b)
 				safeDelete(b)
