Updated undo, haven refactored into the proper classes yet.