Explicit pipe sink

So that we can catch output and eventually forward that to an event handler
which will allow arbitrary subscriptions to the output