adding uniform crossover