changed crossover, valid solution should be generated