PubSub needs to implement for better decoupling