     // 2. Call completion with custom error when creating request fails
     
     // MARK: Internal
+    private var staging: Bool?
     private var clientID: String?
     private var clientSecret: String?
     private var redirectURI: String?
+    private var baseURL: String?
+    private var APIBaseURL: String?
     
     // Keys
     let accessTokenKey = "accessToken"

    
    // MARK: - Setup
    
    public func setClientID(clientID: String, clientSecret secret: String, redirectURI: String) {
        self.clientID = clientID
        self.clientSecret = secret
        self.redirectURI = redirectURI
        
        self.oauthURL = URL(string: "https://trakt.tv/oauth/authorize?response_type=code&client_id=\(clientID)&redirect_uri=\(redirectURI)")
    }
    
    internal func createErrorWithStatusCode(_ statusCode: Int) -> NSError {

                return
        }
        
        let urlString = "https://\(baseURL!)/oauth/token"
        let url = URL(string: urlString)
        guard var request = mutableRequestForURL(url, authorization: false, HTTPMethod: .POST) else {
            completionHandler?(.fail)
