Partial channels implementation
More refactoring for channel use
Try using channels for the control flow