findBestValue and crossover implemented