refactoring - separate out the listeners