Add a router and concept of controllers. Introduce event bus.