         return "access_token"
     }
 
+    var shouldUseAuthorizationHeader: Bool {
+        return false
+    }
+    
     var errorDomain: String {
         return "com.nerdishbynature.RequestKit"
     }

    var apiEndpoint: String { get }
    var accessToken: String? { get }
    var accessTokenFieldName: String { get }
    var errorDomain: String { get }
}


    public func request() -> URLRequest? {
        let url = URL(string: path, relativeTo: URL(string: configuration.apiEndpoint)!)
        var parameters = encoding == .json ? [:] : params

        if let accessToken = configuration.accessToken, !configuration.shouldUseAuthorizationHeader {
            parameters[configuration.accessTokenFieldName] = accessToken as AnyObject?
        }
        let components = URLComponents(url: url!, resolvingAgainstBaseURL: true)
        
        var urlRequest = request(components!, parameters: parameters)
        
        if configuration.shouldUseAuthorizationHeader, let accessToken = configuration.accessToken {
            urlRequest?.addValue("BEARER \(accessToken)", forHTTPHeaderField: "Authorization")
        }
        
        return urlRequest
    }

    public func urlQuery(_ parameters: [String: Any]) -> [URLQueryItem]? {
