refactoring Channel API.