refactoring - adding an ability to run listener with arguments