decouple controllers by using event bus