added crossover functions