Added Undo and Redo

Still doesn't work quite right