added backpressure callback