A take on re-implementing channels (WIP- don't merge)

This is WIP and not yet finished.