     }
     
     //https://dev.twitter.com/oauth/overview/creating-signatures
-    static func oAuthSignature(fromMethod method: String, url: String, parameters: [String:String], with consumerSecret: String) -> String? {
+    static func oAuthSignature(fromMethod method: String, url: String, parameters: [String:String], with consumerSecret: String, oAuthToken: String = "") -> String? {
         var keyValues = [String]()
         for (key, value) in parameters {
             keyValues.append("\(key)=\(value.addingPercentEncoding(withAllowedCharacters: .twitterParameterStringSet)!)")

        
        let twitterRequest = HTTP.request(requestOptions) {
            (optionalResponse) in
            guard let response = optionalResponse, response.statusCode == HTTPStatusCode.OK else {
                //Fail
                return
            }
            
            var body = Data()
            do {
                try response.readAllData(into: &body)
                let string = String(data: body, encoding: String.Encoding.utf8)
                let fields = string?.components(separatedBy: "&")
                var responseDictionary = [String: String]()

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