Topic/client syntax

This story is almost certainly not finished, but I think this is strictly an improvement on the status quo. 
I think I would prefer onStatus but that's really a matter of taste