     }
   }
 
-  public func deferredUploadTask(with request: URLRequest, fromData bodyData: Data) -> DeferredURLSessionTask<(Data, HTTPURLResponse)>
-  {
-    let tbd = DeferredURLSessionTask<(Data, HTTPURLResponse)>()
+  public func deferredUploadTask(qos: DispatchQoS = DispatchQoS.current ?? .utility,
+                                 with request: URLRequest, fromData bodyData: Data) -> DeferredURLSessionTask<(Data, HTTPURLResponse)>
+  {
+    let tbd = DeferredURLSessionTask<(Data, HTTPURLResponse)>(qos: qos)
 
     let task = self.uploadTask(with: request, from: bodyData, completionHandler: uploadCompletion(tbd))
 

    }
  }

  public func deferredDownloadTask(with request: URLRequest) -> DeferredURLSessionTask<(URL, FileHandle, HTTPURLResponse)>
  {
    let tbd = DeferredDownloadTask<(URL, FileHandle, HTTPURLResponse)>()

    let task = self.downloadTask(with: request, completionHandler: downloadCompletion(tbd))


    return tbd
  }

  public func deferredUploadTask(qos: DispatchQoS = DispatchQoS.current ?? .utility,
                                 with request: URLRequest, fromFile fileURL: URL) -> DeferredURLSessionTask<(Data, HTTPURLResponse)>
  {
    let tbd = DeferredURLSessionTask<(Data, HTTPURLResponse)>(qos: qos)

    let task = self.uploadTask(with: request, fromFile: fileURL, completionHandler: uploadCompletion(tbd))

