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

This is WIP and not yet finished.

I haven't thought completely over the request-response style communication but from the client end we do not need it as we will always use full duplex communication, rite?