added initial crossover algorithm