crossover and update population implemented