Expand and re-arrange the undo functionality