@Jake_Johnson to complement what @Leonidas already mentioned, you could have multiple managers, responsible for their part of the game. Since all entities support events, so instead of one large bus, you could use entity.on() and entity.fire() to reduce the amount of events one manager has to handle, e.g. manager would manager.fire() an event that related part of the game would listen manager.on().