population representation as Array now instead of List; crossover (main procedure) implemented, selection abstracted