     private var wipeDatabaseOnConflict = false
     private var pathToSQLiteFile: URL?
     private let mergePolicy: NSMergePolicyType
+    private let identifier: String
     
     private static var spawnedBackgroundCount = 0
     
-    init(modelName: String, type: String = NSSQLiteStoreType, in directory: FileManager.SearchPathDirectory = .documentDirectory, mergePolicy: NSMergePolicyType = .mergeByPropertyObjectTrumpMergePolicyType, wipeOnConflict: Bool) {
+    init(modelName: String, type: String = NSSQLiteStoreType, identifier: String, 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
+        self.identifier = identifier
     }
     
     fileprivate func performUsingWorker(closure: ((NSManagedObjectContext) -> ())) {


private protocol CoreStack {
    var mainContext: NSManagedObjectContext! { get }
    var databaseFilePath: URL? { get }
    func performUsingWorker(closure: ((NSManagedObjectContext) -> ()))
}

        }
    }
    
    public func fetchAttribute<T: NSManagedObject, Result>(named: String, on entity: T.Type, limit: Int? = nil, predicate: NSPredicate = .truePredicate) -> [Result] {
        let request: NSFetchRequest<NSDictionary> = NSFetchRequest(entityName: T.entityName())
        request.resultType = .dictionaryResultType
        request.propertiesToFetch = [named]
