      - Parameter success: Indicates if the save was successful
      - Parameter error: An NSError object containing information as to why the save failed, or `nil` if it succeeded
     */
+
     typealias MHSaveCompletionHandler = (success: Bool, error: NSError?) -> (Void)
 
     //MARK: Properties
 
     ///The name of the model this stack represents
-    private(set) var modelName: String
+    let modelName: String
 
     ///The `NSManagedObjectContext` for the stack
     private(set) lazy var context: NSManagedObjectContext = {

    }()

    ///The `NSManagedObjectModel` the stack represents
    private(set) lazy var model: NSManagedObjectModel = NSManagedObjectModel(contentsOfURL: NSBundle(forClass: self.dynamicType).URLForResource(self.modelName, withExtension: "momd")!)!

    ///The Documents directory of the current bundle
    private(set) lazy var documentsDirectory: NSURL = {
        do{
            return try NSFileManager().URLForDirectory(.DocumentDirectory, inDomain: .UserDomainMask, appropriateForURL: nil, create: true)
        }

    init?(modelName: String){
        let modelName = modelName.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet())
        self.modelName = modelName
        self.model = NSManagedObjectModel(contentsOfURL: NSBundle(forClass: self.dynamicType).URLForResource(modelName, withExtension: "momd")!)!
        guard modelName != "" else{
            return nil
        }
