basic pubsub device