This looks kinda awkward, is this needed? Instead of having save_fileless_units yield, why not just have it loop? After each iteration it won't have a reference to the previous model anyway.