Outsource realm, topic & proc into its own class.