Refactor: Move undo stuff to 'undo' package