code: public EvolutionaryOperator<List<ColouredPolygon>> createEvolutionPipeline(PolygonImageFactory factory,
                                                                                 Dimension canvasSize,
                                                                                 Random rng)
      {
          List<EvolutionaryOperator<List<ColouredPolygon>>> operators
              = new LinkedList<EvolutionaryOperator<List<ColouredPolygon>>>();
          operators.add(new ListCrossover<ColouredPolygon>(new ConstantGenerator<Integer>(2),
                                                           crossOverControl.getNumberGenerator()));
          operators.add(new RemovePolygonMutation(removePolygonControl.getNumberGenerator()));
          operators.add(new MovePolygonMutation(movePolygonControl.getNumberGenerator()));
          operators.add(new ListOperator<ColouredPolygon>(new RemoveVertexMutation(canvasSize,
                                                                                   removeVertexControl.getNumberGenerator())));
          operators.add(new ListOperator<ColouredPolygon>(new AdjustVertexMutation(canvasSize,
                                                                                   moveVertexControl.getNumberGenerator(),
                                                                                   new GaussianGenerator(0, 3, rng))));
          operators.add(new ListOperator<ColouredPolygon>(new AddVertexMutation(canvasSize,
                                                                                addVertexControl.getNumberGenerator())));
          operators.add(new ListOperator<ColouredPolygon>(new PolygonColourMutation(changeColourControl.getNumberGenerator(),
                                                                                    new GaussianGenerator(0, 20, rng))));
          operators.add(new AddPolygonMutation(addPolygonControl.getNumberGenerator(), factory, 50));
          return new EvolutionPipeline<List<ColouredPolygon>>(operators);
      }
docs: Construct the combination of evolutionary operators that will be used to evolve the
  polygon-based images.
  @param factory A source of polygons.
  @param canvasSize The size of the target image.
  @param rng A source of randomness.
  @return A complex evolutionary operator constructed from simpler operators.