Reimplemented channel api. So far so good.