Starting implementation of pubsub module
Backing out stuff that was accidentally committed to master :/
Adding clone and children
Tidying up