         }
     }()
 
-    static var introduction: Listenable<String?> = {
+    public static var introduction: Listenable<String?> = {
         let introduction = defaults.stringForKey(introductionKey)
 
         return Listenable<String?>(introduction) { introduction in

        }
    }

    func removeAllListeners() {
        listenerSet.removeAll(keepCapacity: false)
    }

    init(_ v: T, setterAction action: SetterAction) {
        value = v
        setterAction = action
    }
}

class YepUserDefaults {

    static let defaults = NSUserDefaults(suiteName: YepConfig.appGroupID)!

    static var isLogined: Bool {

        if let _ = YepUserDefaults.v1AccessToken.value {
            return true

        }
    }()

    public static var userLocationName: Listenable<String?> = {
        let userLocationName = defaults.stringForKey(userLocationNameKey)

        return Listenable<String?>(userLocationName) { userLocationName in
