         userDefaults.synchronize()
     }
     
-    func setNewValue(value: Int64?, forStoreKey storeKey: UserDefaultsStoreKey<Int64>) {
-        userDefaults.setObject(value.map(NSNumber.init), forKey: storeKey.key)
+    func setNewValue(value: Int64, forStoreKey storeKey: UserDefaultsStoreKey<Int64>) {
+        userDefaults.setObject(NSNumber(longLong: value), forKey: storeKey.key)
         userDefaults.synchronize()
     }
     

    }
    
    func valueForStoreKey(storeKey: UserDefaultsStoreKey<Int64?>) -> Int64? {
        return userDefaults.objectForKey(storeKey.key) as? Int64
    }
    
    func valueForStoreKey(storeKey: UserDefaultsStoreKey<Double?>) -> Double? {

    
    func setNewValue(value: Bool, forStoreKey storeKey: UserDefaultsStoreKey<Bool>)
    func setNewValue(value: Int, forStoreKey storeKey: UserDefaultsStoreKey<Int>)
    func setNewValue(value: Int64, forStoreKey storeKey: UserDefaultsStoreKey<Int64>)
    func setNewValue(value: Double, forStoreKey storeKey: UserDefaultsStoreKey<Double>)
    func setNewValue(value: String, forStoreKey storeKey: UserDefaultsStoreKey<String>)
}
