refactor to use dummy listeners