         
     }
     
+    
+    // MARK: Deinit
+    
     deinit {
         
         NotificationCenter.default.removeObserver(

    
    // MARK: Property
    
    let viewContext: NSManagedObjectContext
    let writerContext: NSManagedObjectContext
    let storeCoordinator: NSPersistentStoreCoordinator
    let storeType: StoreType
    
    
    // MARK: Init
    
    init(name: String, model: NSManagedObjectModel, options: [NSObject: AnyObject]? = nil, storeType: StoreType) throws {
        

    
    // MARK: Notification
    
    /// The receiver will merge changes from other contexts when receiving NSManagedObjectContextDidSave notificatons.
    @objc public func contextDidSave(notification: Notification) {
        
        guard let childContext = notification.object as? NSManagedObjectContext
