     
     public static func closeConnection<T>(classToken: T.Type) -> Observable<Void> {
         return Observable.deferred {
-            TokenCache.INSTANCE.evict(String(classToken))
+            let key = String(classToken).componentsSeparatedByString(".").last!
+            TokenCache.INSTANCE.evict(key)
             return Observable.just()
         }
     }

    
    public static func with<T: ProviderOAuth20>(viewController: UIViewController, providerOAuth20: T) -> Observable<OAuthSwiftCredential> {
        
        let key = String(T)
        
        if let response = TokenCache.INSTANCE.get(key, classToken: OAuthSwiftCredential.self) {
            return response

    public static func getOAuthCredential<T>(classToken: T.Type) -> Observable<OAuthSwiftCredential> {
        return Observable.deferred {
            
            let key = String(T).componentsSeparatedByString(".").last!
            
            if let credential = TokenCache.INSTANCE.get(key, classToken: OAuthSwiftCredential.self) {
                return credential
