Refactor channel implementations