Restore undo functionality
Move most save status logic to service