     }
     
     // MARK: Cleanup
-    class func truncate() {
+    internal class func truncate() {
         let fileManager = NSFileManager.defaultManager()
         do {
             try fileManager.removeItemAtPath(self.filePathEncryption(SMASaveSystemConstants.Encryption)!)

        }
    }
    
    class func data(key: String!) -> NSData? {
        return self.data(key, encryption: SMASaveSystemConstants.Encryption)
    }
    
    // MARK: NSObject
    class func saveObject(object: AnyObject, key: String!) {
        let data = NSKeyedArchiver.archivedDataWithRootObject(object)
        self.saveData(data, key: key)
    }
    
    /*
    class func object(key: String!, checkClass: AnyClass?) -> AnyObject? {
        if let data = self.data(key) {
            let object = NSKeyedUnarchiver.unarchiveObjectWithData(data)
            if (checkClass == nil || object?.isKindOfClass(checkClass!) != nil) {
                return object
            } else {
                if SMASaveSystemConstants.Logging == true {
                    print("SMASaveSystem ERROR: object(key: \(key) -> saved object is \(object?.classDescription) not a \(checkClass)")
                }
            }
        }
        return nil
    }
    */
    
    class func object(key: String!) -> AnyObject? {
        //return self.object(key)
        if let data = self.data(key) {
            if let object = NSKeyedUnarchiver.unarchiveObjectWithData(data) {

    }
    
    // MARK: String
    internal class func saveString(string: String!, key: String!) {
        self.saveObject(string, key: key)
    }
    
    internal class func string(key: String!) -> String? {
        return self.object(key) as? String
    }
    
    // MARK: NSNumber
    internal class func saveNumber(number: NSNumber!, key: String!) {
        self.saveObject(number, key: key)
    }
    
    internal class func number(key: String!) -> NSNumber? {
        return self.object(key) as? NSNumber
    }
    
    // MARK: NSDate
    internal class func saveDate(date: NSDate!, key: String!) {
        self.saveObject(date, key: key)
    }
    
    internal class func date(key: String!) -> NSDate? {
        return self.object(key) as? NSDate
    }
    
    // MARK: Primitives
    
    // MARK: NSInteger
    internal class func saveInteger(integer: NSInteger!, key: String!) {
        self.saveObject(NSNumber(integer: integer), key: key)
    }
    
    internal class func integer(key: String!) -> NSInteger? {
        return self.object(key) as? NSInteger
    }
    
    // MARK: CGFloat
    internal class func saveFloat(float: Float!, key: String!) {
        self.saveObject(NSNumber(float: float), key: key)
    }
    
    internal class func float(key: String!) -> Float? {
        return self.object(key) as? Float
    }
    
    // MARK: Bool
    internal class func saveBool(bool: Bool, key: String!) {
        self.saveObject(NSNumber(bool: bool), key: key)
    }
    
    internal class func bool(key: String!) -> Bool {
        return self.object(key) as! Bool
    }
    
