add publish/subscribe