     
     private var oAuthToken: String = ""
     private var oAuthTokenSecret: String = ""
+    private var oAuthTokenVerifier: String = ""
     
     private var hasOAuthToken: Bool {
         return oAuthToken.isEmpty

        parameters["oauth_nonce"] = nonce
        parameters["oauth_version"] = "1.0"
        
        let signature = String.oAuthSignature(fromMethod: "POST",
                                              url: "https://api.twitter.com/oauth/request_token",
                                              parameters: parameters,
                                              with: consumerSecret)!
        parameters["oauth_signature"] = signature
        
        var keyValues = [String]()

        let sortedParameters = keyValues.sorted(by: {$0 < $1})
        let joinedParameters = sortedParameters.joined(separator: "&")
        guard let percentEncodedUrl = url.addingPercentEncoding(withAllowedCharacters: .twitterParameterStringSet),
            let percentEncodedJoinedParameters = joinedParameters.addingPercentEncoding(withAllowedCharacters: .twitterParameterStringSet),
            let percentEncodedConsumerSecret = consumerSecret.addingPercentEncoding(withAllowedCharacters: .twitterParameterStringSet) else {
                return nil
        }
        
        let rawString = [method, percentEncodedUrl, percentEncodedJoinedParameters].joined(separator: "&")
        
        let hmac = HMAC(using: .sha1, key: percentEncodedConsumerSecret + "&" + oAuthToken)
        let encryptedKey = hmac.update(string: rawString)!
        let encodedRawBytes = encryptedKey.final()
        let encodedData = Data(bytes: encodedRawBytes)
