Channel refactor

I think it is worth to keep this documentation (updated if needed).