   ///
   /// - parameter qos: the QoS at which the notifications should be performed; defaults to the current QoS class.
 
-  public init(qos: DispatchQoS = .current, execute: (Resolver<Value>) -> Void)
+  public init(qos: DispatchQoS = .current, source: AnyObject? = nil, execute: (Resolver<Value>) -> Void)
   {
     let queue = DispatchQueue(label: "tbd", qos: qos)
-    super.init(queue: queue)
+    super.init(queue: queue, source: source)
     execute(Resolver(self))
   }
 

  ///
  /// - parameter queue: the `DispatchQueue` on which the notifications will be executed

  public init(queue: DispatchQueue, execute: (Resolver<Value>) -> Void)
  {
    super.init(queue: queue)
    execute(Resolver(self))
  }


    deferredState = AtomicInt(beginExecution ? (source.deferredState.load(.relaxed) & .executing) : 0)
  }

  fileprivate init(queue: DispatchQueue, source: AnyObject? = nil)
  {
    self.queue = queue
    self.source = source
    resolved = nil
    deferredState = AtomicInt(.waiting)
  }
