switch fixture to use a named dependency rather than bound function
make channel an emitter, listen for lifecycle events