move each() and source() to ceci-channels