Full support for save and save as. Partial functionality on undo redo