refactored new channel logic