     }
   }
 
-  public func deferredDataTask(with request: URLRequest) -> DeferredURLSessionTask<(Data, HTTPURLResponse)>
-  {
-    let tbd = DeferredURLSessionTask<(Data, HTTPURLResponse)>()
+  public func deferredDataTask(qos: DispatchQoS = DispatchQoS.current ?? .utility,
+                               with request: URLRequest) -> DeferredURLSessionTask<(Data, HTTPURLResponse)>
+  {
+    let tbd = DeferredURLSessionTask<(Data, HTTPURLResponse)>(qos: qos)
 
     let task = self.dataTask(with: request, completionHandler: dataCompletion(tbd))
 

    return tbd
  }

  public func deferredUploadTask(with request: URLRequest, fromFile fileURL: URL) -> DeferredURLSessionTask<(Data, HTTPURLResponse)>
  {
    let tbd = DeferredURLSessionTask<(Data, HTTPURLResponse)>()

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


    return tbd
  }

  public func deferredDataTask(qos: DispatchQoS = DispatchQoS.current ?? .utility,
                               with url: URL) -> DeferredURLSessionTask<(Data, HTTPURLResponse)>
  {
    return deferredDataTask(qos: qos, with: URLRequest(url: url))
  }
}

