reworked Channel internals