refactoring (removed ContainerAware stuff, added real DI by defining controllers/tasks/events as services)