   func downloadQueueCancelled(_ queue: HTTPDownloader)
 }
 
-class HTTPDownloader: NSObject, URLSessionDelegate, URLSessionTaskDelegate, URLSessionDownloadDelegate,
-URLSessionDataDelegate {
+class HTTPDownloader: NSObject {
   var queue: [HTTPDownloadRequest] = []
   // TODO: Make unowned
   weak var handler: HTTPDownloadDelegate?

    self.handler = handler

    let config = URLSessionConfiguration.default
    downloadSession = URLSession(configuration: config, delegate: self, delegateQueue: nil)
  }

  func addRequest(_ request: HTTPDownloadRequest) {

      currentRequest = req

      if req.typeCode == .downloadFile {
        req.task = downloadSession.downloadTask(with: req.url, completionHandler: self.downloadCompletionHandler)
        handler?.downloadRequestStarted(req)
      }
      req?.task?.resume()
