refactors by moving all events into single controller