improve pubsub