channels component refactoring