                 return
             }
             
-            s.watchers.forEach { [weak self, weak moc] in
-                guard let s = self else {
-                    return
-                }
-                
+            s.watchers.forEach { [weak moc] in
                 guard let watch = $0.watch else {
                     return
                 }
                 
-                (watch.delegate as? WatchCloudDelegate)?.graphWillUpdateFromCloudStorage?(graph: s)
+                (watch.delegate as? WatchCloudDelegate)?.graphWillUpdateFromCloudStorage?(graph: watch.graph)
                 
                 moc?.mergeChanges(fromContextDidSave: notification)
                 

            t = .initialImportCompleted
        }
        
        watchers.forEach { [weak self] in
            guard let s = self else {
                return
            }
            
            ($0.watch?.delegate as? WatchCloudDelegate)?.graphWillPrepareCloudStorage?(graph: s, transition: t)
        }
    }
    
    internal func persistentStoreDidChange(_ notification: Notification) {
        GraphContextRegistry.added[self.route] = true
        self.completion?(true, nil)
        for watcher in watchers {
            if let watch = watcher.watch {
                (watch.delegate as? WatchCloudDelegate)?.graphDidPrepareCloudStorage?(graph: self)
            }
        }
    }
    

     */
    static func create(type: String, location: URL, options: [NSObject: Any]? = nil) -> NSPersistentStoreCoordinator {
        var coordinator: NSPersistentStoreCoordinator?
        
        File.createDirectoryAtPath(location, withIntermediateDirectories: true, attributes: nil) { (success, error) in
            if let e = error {
                fatalError("[Graph Error: \(e.localizedDescription)]")
            }
        
            coordinator = NSPersistentStoreCoordinator(managedObjectModel: Model.create())
        }
        
        return coordinator!
    }
}
