Abstracting out the channel for better flexibility.