Add pubsub example, project structure refactor