some work on channels, code is broken