Added persistent undo, added node dictionary