added some logging to squash a bug
bug identified, a bit of refactoring to follow
factored out 'channel listener'