Added mutation and crossover functions, finished basic main loop