decoupling the channel from the dispatcher