 {
   private weak var sessionTask: URLSessionTask? = nil
 
-  init() { super.init(queue: DispatchQueue.global()) }
+  init(qos: DispatchQoS)
+  {
+    let queue = DispatchQueue(label: "urlsession", qos: qos, attributes: .concurrent)
+    super.init(queue: queue)
+  }
 
   @discardableResult
   override public func cancel(_ reason: String = "") -> Bool

    }
  }

  public func deferredDataTask(with request: URLRequest) -> DeferredURLSessionTask<(Data, HTTPURLResponse)>
  {
    let tbd = DeferredURLSessionTask<(Data, HTTPURLResponse)>()

    let task = self.dataTask(with: request, completionHandler: dataCompletion(tbd))


    }
  }

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

