         let contactsContext = NSManagedObjectContext(concurrencyType: .PrivateQueueConcurrencyType)
         // setup the persistent store coordinator for the contacts context
         contactsContext.persistentStoreCoordinator = CoreDataStack.sharedInstance.coordinator
+        
+        // initialize contact importer
+        contactImporter = ContactImporter(context: context)
+        
         // call the import contacts with this private queue context
         importContacts(contactsContext)
+        
+        // listen for changes
+        contactImporter?.listenForChanges()
         
         return true
     }

class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?

    
    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject : AnyObject]?) -> Bool {

        guard !dataSeeded else { return }
        
        // fetch the user's contacts
        contactImporter?.fetch()
        
        // update user defaults with a true value for seeded data key
        NSUserDefaults.standardUserDefaults().setObject(true, forKey: "DataSeeded")
