refactored listener interface to use of specific consumers