refactoring attempt with a single channel