 
 open class CDObserver: NSObject {
     let context: NSManagedObjectContext
-    public var request: NSFetchRequest<NSFetchRequestResult> {
+    public var request: NSFetchRequest<NSFetchRequestResult>? {
         didSet {
             fetch()
         }

    }
    
    public func fetch() {
        do {
            let results = try context.fetch(request) as! [NSManagedObject]
            self.results = results

    public var onObjectsChanged: (([NSManagedObject]) -> ())?
    
    func handleObjectsChanged(notification: NSNotification) {
        guard let request = self.request else { return }
        
        let changedObjects = CDObserver.changedObjects(forNotification: notification, includeChanges: self.includeChanges)
        var changedEntities = Set<String>()
        
