Expand channels architecture

It should be easier to actually implement some functionality now.