clean up pub/sub api a bit