private Vector applyCrossover(
      Particle particle, List<Vector> parents, CrossoverStrategy crossover) {
    List<Entity> entityParents = Lists.newLinkedList();

    for (Vector v : parents) {
      Entity parent = particle.getClone();
      parent.setCandidateSolution(v);
      entityParents.add(parent);
    }

    return (Vector) crossover.crossover(entityParents).get(0).getCandidateSolution();
  }
 @Override
 public StructuredType f(List<Particle> parent, Particle offspring) {
   return crossoverStrategy.crossover(parent).get(0).getCandidateSolution();
 }