       output(elements)
     }
           
-    input = { element in
+    self._send = { newElement in
       
-      switch buffer.write(element: element) {
+      switch buffer.write(element: newElement) {
       case .flowed(let elements):
         // TODO: align interface of Collection
         return output(elements.map { $0 })

  
  private var timer: BulkBufferTimer!
  
  private let input: (Element) -> Void
    
  public init(
    buffer: AnyBuffer<Element>,
    debounceDueTime: DispatchTimeInterval = .seconds(10),
    targets: [AnyTarget<Element>]
  ) {
    
    self.targets = targets
    
    let output: ([Element]) -> Void = { elements in

  
  public func send(_ element: Element) {
    targetQueue.async {
      self._send(element)
    }
  }

  public func flush() {
    targetQueue.async {
      self._onFlush()
    }
  }
  
