add test case, enable listener for delete event
diff --git a/bundle.go b/bundle.go
index 660bd53..a53f31c 100644
--- a/bundle.go
+++ b/bundle.go
@@ -36,7 +36,7 @@
 	queueDownloadRequest(*DataDeployment)
 	enqueueRequest(*DownloadRequest)
 	makeDownloadRequest(string) *DownloadRequest
-	//deleteBundles([]DataDeployment)
+	deleteBundles([]DataDeployment)
 	Close()
 }
 
diff --git a/listener.go b/listener.go
index 701d3a1..8961bae 100644
--- a/listener.go
+++ b/listener.go
@@ -135,7 +135,7 @@
 	if len(deletedDeployments) > 0 {
 		log.Debugf("will delete %d old bundles", len(deletedDeployments))
 		//TODO delete bundles for deleted deployments
-		//h.bundleMan.deleteBundles(deletedDeployments)
+		h.bundleMan.deleteBundles(deletedDeployments)
 	}
 }
 
diff --git a/listener_test.go b/listener_test.go
index ad0b258..d82ce1c 100644
--- a/listener_test.go
+++ b/listener_test.go
@@ -39,6 +39,7 @@
 		dummyBundleMan = &dummyBundleManager{
 			requestChan: make(chan *DownloadRequest),
 			depChan:     make(chan *DataDeployment),
+			delChan:     make(chan *DataDeployment),
 		}
 		testHandler = &apigeeSyncHandler{
 			dbMan:     dummyDbMan,
@@ -124,11 +125,43 @@
 
 			apid.Events().Emit(APIGEE_SYNC_EVENT, changeList)
 
+			// verify
 			for i := 0; i < len(changes); i++ {
 				dep := <-dummyBundleMan.depChan
 				Expect(reflect.DeepEqual(deployments[dep.ID], *dep)).Should(BeTrue())
 				delete(deployments, dep.ID)
 			}
+			Expect(len(deployments)).Should(BeZero())
+		})
+
+		It("Delete event shoud deliver to the bundle manager", func() {
+			// emit change event
+			changes := make([]common.Change, 0)
+			deployments := make(map[string]bool)
+			for i := 0; i < 1+rand.Intn(10); i++ {
+				dep := makeTestDeployment()
+				change := common.Change{
+					Operation: common.Delete,
+					Table:     CONFIG_METADATA_TABLE,
+					OldRow:    rowFromDeployment(dep),
+				}
+				changes = append(changes, change)
+				deployments[dep.ID] = true
+			}
+
+			changeList := &common.ChangeList{
+				Changes: changes,
+			}
+
+			apid.Events().Emit(APIGEE_SYNC_EVENT, changeList)
+
+			// verify
+			for i := 0; i < len(changes); i++ {
+				dep := <-dummyBundleMan.delChan
+				Expect(deployments[dep.ID]).Should(BeTrue())
+				delete(deployments, dep.ID)
+			}
+			Expect(len(deployments)).Should(BeZero())
 		})
 	})
 })
@@ -136,6 +169,7 @@
 type dummyBundleManager struct {
 	requestChan chan *DownloadRequest
 	depChan     chan *DataDeployment
+	delChan     chan *DataDeployment
 }
 
 func (bm *dummyBundleManager) initializeBundleDownloading() {
@@ -156,6 +190,12 @@
 	}
 }
 
+func (bm *dummyBundleManager) deleteBundles(deployments []DataDeployment) {
+	for i := range deployments {
+		bm.delChan <- &deployments[i]
+	}
+}
+
 func (bm *dummyBundleManager) Close() {
 
 }