update data splitting to adjust to the amount of data given. adjust crossover to allow for odd amounts of data