clk works starting refactor of channel interface