 			return result
 		}
 		
-		static func loadBool(key:String, fromCloud:Bool) -> Bool? {
+		static func loadBool(key: String, fromCloud: Bool) -> Bool? {
 			if fromCloud {
 				return store.boolForKey(key)
 			} else {

			}
		}
		
		var expMax:Int {
			get {
				return EXP.expAtLevel(level)
			}
		}
		
		var stamina:Int {
			get {
				return _stamina
			}

			}
		}
		
		var staminaMax: Int {
			get {
				return Stamina.staminaAtLevel(level)
			}
		}
		
		var date: NSDate = NSDate.init()
		
		var group: UserGroup = UserGroup.A
		
		var preferLevel = SongLevel.Debut
		
		var preferEventLevel = SongLevel.Debut
		
		public override init() {
			super.init()
		}
		
		public required init?(coder aDecoder: NSCoder) {
			super.init()
			_level = aDecoder.decodeIntegerForKey("level")
			_exp = aDecoder.decodeIntegerForKey("exp")
			_stamina = aDecoder.decodeIntegerForKey("stamina")
			date = aDecoder.decodeObjectForKey("date") as! NSDate
			group = UserGroup(rawValue: aDecoder.decodeIntegerForKey("group"))!
			preferLevel = SongLevel(rawValue: aDecoder.decodeIntegerForKey("preferLevel"))!
			preferEventLevel = SongLevel(rawValue: aDecoder.decodeIntegerForKey("preferEventLevel"))!
		}

		
		public func encodeWithCoder(aCoder: NSCoder) {
			aCoder.encodeInteger(version, forKey: "version")
			aCoder.encodeInteger(_level, forKey: "level")
			aCoder.encodeInteger(_exp, forKey: "exp")
			aCoder.encodeInteger(_stamina, forKey: "stamina")
			aCoder.encodeObject(date, forKey: "date")
			aCoder.encodeInteger(group.rawValue, forKey: "group")
			aCoder.encodeInteger(preferLevel.rawValue, forKey: "preferLevel")
			aCoder.encodeInteger(preferEventLevel.rawValue, forKey: "preferEventLevel")
		}
	}
	
	class Helper: NSObject {
		static let defaults = NSUserDefaults(suiteName: "group.com.niceb5y.drstm")!
		static let store = NSUbiquitousKeyValueStore.defaultStore()
		
		static func saveObject(value: AnyObject, forKey: String) -> Bool? {
			defaults.setObject(value, forKey: forKey)
			return defaults.synchronize()
		}
		
		static func loadObject(key: String) -> AnyObject? {
			return defaults.objectForKey(key)
		}
		
		static func saveBool(value: Bool, forKey: String) -> Bool? {
			defaults.setBool(value, forKey: forKey)
			return defaults.synchronize()
		}
		
		static func loadBool(key: String) -> Bool? {
			return defaults.boolForKey(key)
		}
		
		static func saveObject(value: AnyObject, forKey: String, toCloud: Bool) -> Bool? {
			var result = Helper.saveObject(value, forKey: forKey)
			if toCloud {
				store.setObject(value, forKey: forKey)
