         return context
     }()
     
-    public init(modelName: String) {
-        stack = LegacyCoreStack(modelName: modelName)
+    public init(modelName: String, wipeOnConflict: Bool = false) {
+        stack = LegacyCoreStack(modelName: modelName, wipeOnConflict: wipeOnConflict)
     }
     
     public func perform(wait: Bool = true, block: TaskClosure) {

    public func inCurrentContext<T: NSManagedObject>(entity: T) -> T {
        return object(with: entity.objectID) as! T
    }
}

private protocol CoreStack {

    
    private static var spawnedBackgroundCount = 0
    
    init(modelName: String, type: String = NSSQLiteStoreType, in directory: FileManager.SearchPathDirectory = .documentDirectory, mergePolicy: NSMergePolicyType = .mergeByPropertyObjectTrumpMergePolicyType, wipeOnConflict: Bool) {
        self.modelName = modelName
        self.storeType = type
        self.directory = directory
        self.mergePolicy = mergePolicy
        self.wipeDatabaseOnConflict = wipeOnConflict
    }
    
    private func performUsingWorker(closure: ((NSManagedObjectContext) -> ())) {
