added support for redo

to come: method testing for redo/undo