Channel

I branched against your demo stuff. But all of this is outside of the demo code. You can move around and do what you will.

@robertkluin