add pub/sub library to achieve communication between modules