add error handling logic, more information on channels