Added redo and undo
Added tests for undo and redo