Some refactoring of Crossover.