implementing support for saving different stages of data correction.
Major structural change to allow for saving different versions of the data.