code: public boolean undo() {
      LOGGER.trace("undo, before, size: " + changes.size() + " pos: " + position.get()
          + " validPos: " + validPosition.get());
      Change lastChange = prev();
      if (lastChange != null) {
        doWithoutListeners(lastChange.getSetting(), lastChange::undo);
        LOGGER.trace("undo, after, size: " + changes.size() + " pos: " + position.get()
            + " validPos: " + validPosition.get());
        return true;
      }
      return false;
    }
docs: Undos a change in the history.
  
  @return true if successful, false if there are no changes to undo