create channel refactored