         super.init()
 
         let config = configuration ?? URLSessionConfiguration.default
-        self.session = URLSession(configuration: config, delegate: self, delegateQueue: nil)
+        self.urlSession = URLSession(configuration: config, delegate: self, delegateQueue: nil)
     }
 
     deinit {
-        session.invalidateAndCancel()
+        urlSession.invalidateAndCancel()
     }
 
     @discardableResult


        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)
        }
    }
}
