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

This is WIP and not yet finished.

Do we need two classes ServerConnection/ClientConnection?