undo implemented using CommandItem base class with multiple inheritance and QUndoCommand functionality
save and load functionality working on a basic level. Simply saving/loading the canvas, no serialization, etc.