     ///  The bundle in which the model is located.
     public let bundle: NSBundle
 
-    ///  The file URL specifying the store in the documents directory.
+    ///  The file URL specifying the directory in which the store is located.
+    public let storeDirectoryURL: NSURL
+
+    ///  The file URL specifying the full path to the store.
     public var storeURL: NSURL {
         get {
-            var error: NSError?
-            let documentsDirectoryURL = NSFileManager.defaultManager().URLForDirectory(.DocumentDirectory, inDomain: .UserDomainMask, appropriateForURL: nil, create: true, error: &error)
-            assert(documentsDirectoryURL != nil, "*** Error finding documents directory: \(error)")
-            return documentsDirectoryURL!.URLByAppendingPathComponent(databaseFileName)
+            return storeDirectoryURL.URLByAppendingPathComponent(databaseFileName)
         }
     }
 


    ///  Constructs new `CoreDataModel` instance with the specified name and bundle.
    ///
    ///  :param: name   The name of the Core Data model.
    ///  :param: bundle The bundle in which the model is located. The default parameter value is `NSBundle.mainBundle()`.
    ///
    ///  :returns: A new `CoreDataModel` instance.
    public init(name: String, bundle: NSBundle = NSBundle.mainBundle()) {
        self.name = name
        self.bundle = bundle
    }

    // MARK: Methods

            return "<\(toString(CoreDataModel.self)): name=\(name), needsMigration=\(modelStoreNeedsMigration), databaseFileName=\(databaseFileName), modelURL=\(modelURL), storeURL=\(storeURL)>"
        }
    }

}


private func documentsDirectoryURL() -> NSURL {
    var error: NSError?
    let url = NSFileManager.defaultManager().URLForDirectory(.DocumentDirectory, inDomain: .UserDomainMask, appropriateForURL: nil, create: true, error: &error)
    assert(url != nil, "*** Error finding documents directory: \(error)")
    return url!
}
