refac, pubsub