implemented redo!

and a couple other minor changes.