add error handling todo