         return true
     }
     
+    private var storeType: String {
+        return inMemoryStore ? NSInMemoryStoreType : NSSQLiteStoreType
+    }
+    
+    private var storeOptions: [String: Bool] {
+        return [
+            NSMigratePersistentStoresAutomaticallyOption : true,
+            NSInferMappingModelAutomaticallyOption : true
+        ]
+    }
+    
     
     ///Custom Errors
     public enum CoreDataStackError: ErrorType, CustomDebugStringConvertible {
-        ///Occurs when `deleteStore` or `saveToDisk` is attempted but mainContext and/or writingContext are nil
-        case InvalidContextState
-        ///Occurs when `deleteStore` is attempted but `persistentStoreCoordinator` is nil
-        case InvalidStore
-        
-        //case NotSetup
+        case PersistentStoreUnavailable
         
         public var debugDescription: String {
             switch self {
-            case .InvalidContextState:
-                let message = "This stack currently has a nil `mainContext` and/or a nil `writingContext`.  This is" +
-                              "can happen if the `deleteStore` method is called without the rejuvenate flag set to" +
-                              "true.  The only way to fix is to set up a new stack from scratch."
+            case .PersistentStoreUnavailable:
+                let message = "This persistent store is not set up. This can happen if there is an initialization" +
+                              "error or the store has been deleted using the `deleteStore` method."
                 return message
-            case .InvalidStore:
-                return "The persistent store is nil which can only be fixed by recreating the stack."
             }
         }
     }

    }
    
    
    private func createPersistentStoreCoordinator() -> NSPersistentStoreCoordinator? {
        guard let mom = managedObjectModel else {
            Log("Attempting to create a `persistentStoreCoordinator` but one already exists.")
            return nil
        }
        

    }
    
    
    private func createMainContext() -> NSManagedObjectContext {
        guard let wc = writingContext else {
            Log("Attempting to create `mainContext` before the persistent store coordinator is setup.")
            return nil
