basic pubsub Class