Added crossover function to return a new population.