Add pubsub skeleton, need a lot of testing for return types