Add PubSub functionality to components