got basic undo/redo working again and added an exception class to aid in user feedback