Added undo/redo

not yet finished