     }
 
     class func tokenWithKeychainItem(keychainItem: Token.KeychainItem) -> Self {
-        let otp = self(token: keychainItem.token)
+        let otp = self()
+        otp.updateWithToken(keychainItem.token)
         otp.keychainItem = keychainItem
         return otp
     }

    class func tokenWithURL(url: NSURL) -> Self? {
        if let urlString = url.absoluteString {
            if let token = Token.URLSerializer.deserialize(urlString) {
                return self(token: token)
            }
        }
        return nil

    }
    var keychainItem: Token.KeychainItem?

    private func updateWithToken(token: Token) {
        self.name = token.name
        self.issuer = token.issuer
