redo/undo stack
redo/undo and its testing
add how to