More events and listeners
Event-oriented refactoring