Added basic undo/redo system