Passing callback to subscribe should be optional

This makes reattaching listeners after `unsubscribe` trivial