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

    
    public static func closeConnection<T>(classToken: T.Type) -> Observable<Void> {
        return Observable.deferred {
            TokenCache.INSTANCE.evict(String(classToken))
            return Observable.just()
        }
    }

    
    public static func with<T: ProviderOAuth1>(viewController: UIViewController, providerOAuth1: T) -> Observable<OAuthSwiftCredential> {
        
        let key = String(T).componentsSeparatedByString(".").last!

        if let response = TokenCache.INSTANCE.get(key, classToken: OAuthSwiftCredential.self) {
            return response
