Topic/client syntax

This story is almost certainly not finished, but I think this is strictly an improvement on the status quo. 
maybe 'decodeByStatus' or 'onStatus' will be clearer