Listener Refactoring