UndoManager Demo: https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/UndoArchitecture/Articles/UndoManager.html