Reworks undo-redo to work without using node objects
Breaks down insert into insert and insertRecursive methods
Converts set and delete into setRecursive and deleteRecursive