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

This is WIP and not yet finished.

Using String here is an optimisation we should consider when we are sending a lot of deltas down the wire. Having to serialize an entire InstanceInfoField could be more expensive.