error handling
update todo