I guess I would have just done the iteration that happens inside `needs_saved` inside the scope of `update_definition_from_data`. I don't see why you need a nested function to do the work that it's doing.