Listener refactored