The crossover and selection operations are provided by classes instead of a function.