update todo handle state