         
         if (!nilValue) {
             switch (type) {
-            case .kStringType:
+            case .tString:
                 stringData = (decoder.decodeObjectForKey("0") as String)
-            case .kBoolType, .kIntType, .kDoubleType:
+            case .tBool, .tInt, .tDouble:
             //numberData = NSNumber(bool:decoder.decodeBoolForKey("0"))
                 numberData = (decoder.decodeObjectForKey("0") as NSNumber)
-            //case .kIntType:
-                //numberData = NSNumber(long:decoder.decodeIntegerForKey("0"))
-             //   numberData = (decoder.decodeObjectForKey("0") as NSNumber)
-            //case .kDoubleType:
-            //    numberData = NSNumber(double:decoder.decodeDoubleForKey("0"))
+            case .tNSDate:
+                dateData = (decoder.decodeObjectForKey("0") as NSDate)
             default:
                 print("WARNING: Encoding Property and not handled default case")
             }

        set {
            if boolValue != newValue {
                dirty = true
                type = .kBoolType
                
                if (newValue != nil) {
                    numberData = NSNumber(bool:newValue!)

    public var value : AnyObject? {
        get {
            switch type {
            case  .tString:
                return stringData
            default:
                return numberData
