implemented crossover still need to fix some things