         }
     }
 
-    func removeAllListeners() {
+    public func removeAllListeners() {
         listenerSet.removeAll(keepCapacity: false)
     }
 
-    init(_ v: T, setterAction action: SetterAction) {
+    public init(_ v: T, setterAction action: SetterAction) {
         value = v
         setterAction = action
     }
 }
 
-class YepUserDefaults {
+final public class YepUserDefaults {
 
     static let defaults = NSUserDefaults(suiteName: YepConfig.appGroupID)!
 
-    static var isLogined: Bool {
+    public static var isLogined: Bool {
 
         if let _ = YepUserDefaults.v1AccessToken.value {
             return true


    // MARK: ReLogin

    class func cleanAllUserDefaults() {

        v1AccessToken.removeAllListeners()
        userID.removeAllListeners()

        }
    }()

    public static var admin: Listenable<Bool?> = {
        let admin = defaults.boolForKey(adminKey)

        return Listenable<Bool?>(admin) { admin in
