Added another implementation for crossover