Currently I have one primary model with multiple "sub" models tied in a many-to-one relationship to it. My goal would be that, each time something within that primary model is edited, the changes are stored in a separate model, so an user could undo or redo changes as many times as he wishes