added mutation operators and fixed crossover I think