   
   public func send(_ element: Element) {
     targetQueue.async {
-      self.input(element)
+      self._send(element)
+    }
+  }
+
+  public func flush() {
+    targetQueue.async {
+      self._onFlush()
     }
   }
   

        break
      }
      
    }
            
  }

  
  private var timer: BulkBufferTimer!
  
  private let _send: (Element) -> Void
  private let _onFlush: () -> Void

  private let buffer: AnyBuffer<Element>
    
  public init(
    buffer: AnyBuffer<Element>,
    debounceDueTime: DispatchTimeInterval = .seconds(10),
    targets: [AnyTarget<Element>]
  ) {

    self.buffer = buffer
    self.targets = targets
    
    let output: ([Element]) -> Void = { elements in
