Restructure with PyPubSub