code: @Override
      public MoveSelector buildBaseMoveSelector(HeuristicConfigPolicy configPolicy,
              SelectionCacheType minimumCacheType, boolean randomSelection) {
          if (moveIteratorFactoryClass == null) {
              throw new IllegalArgumentException("The moveIteratorFactoryConfig (" + this
                      + ") lacks a moveListFactoryClass (" + moveIteratorFactoryClass + ").");
          }
          MoveIteratorFactory moveIteratorFactory = ConfigUtils.newInstance(this,
                  "moveIteratorFactoryClass", moveIteratorFactoryClass);
          ConfigUtils.applyCustomProperties(moveIteratorFactory, "moveIteratorFactoryClass",
                  moveIteratorFactoryCustomProperties, "moveIteratorFactoryCustomProperties");
          return new MoveIteratorFactoryToMoveSelectorBridge(moveIteratorFactory, randomSelection);
      }
docs: ************************************************************************