@Override
    public State clone() {
      try {
        State result = (State)super.clone();
        myCache = new ConcurrentHashMap<>();
        result.resetCache();
        return result;
      }
      catch (CloneNotSupportedException e) {
        throw new RuntimeException(e);
      }
    }
@Override
    public State clone()