implemented a proper zip() for channels