added channel implementation skeleton