starting to clean up (JD, simplify) the logic in Channel, and moved some code to utilities