     public static var shared = HTTPSession()
 
     /// The underlying `URLSession` used for tasks.
-    public private(set) var session: URLSession!
+    public private(set) var urlSession: URLSession!
 
     /// If set this handler will be used for both session and task authentication challenges.
     public var authenticationChallengeHandler: ( (URLSession, URLSessionTask?, URLAuthenticationChallenge) -> (URLSession.AuthChallengeDisposition, URLCredential?) )?


        return task.taskIdentifier
    }

}

extension HTTPSession: URLSessionDelegate {

        self.completion = completion
    }
}

extension URLSession {
    public func task(withID taskID: Int, completion: @escaping (URLSessionTask?) -> Void) {
        getAllTasks() { (allTasks) in
            var foundTask: URLSessionTask?
            for task in allTasks {
                if task.taskIdentifier == taskID {
                    foundTask = task
                    break
                }
            }
            completion(foundTask)
        }
    }
}
