announcer should use PUB, listener should use SUB