initial channel implementation