code: @Override
  	public boolean revertToPreviousState () {
  		if (stateStack.size == 0) {
  			return false;
  		}
  
  		S previousState = stateStack.pop();
  		changeState(previousState, false);
  		return true;
  	}
docs: Changes the Change state back to the previous state. That is the high-most state on the internal stack of previous states.
  @return {@code True} in case there was a previous state that we were able to revert to. In case there is no previous state,
  no state change occurs and {@code false} will be returned.