modified EventListener