IMO less is more, lets split it into one function doing a non-atomic save and another that does an "atomic" save, but makes use of the other function.