public void mutate(Random r, double mutateProb, String alphabet, String target) {
		//see if we're going to mutate each character
		char[] dataArray = data.toCharArray();
		for(int i = 0; i < dataArray.length; i++) {
			if(r.nextDouble() <= mutateProb) {
				dataArray[i] = alphabet.charAt(r.nextInt(alphabet.length()));
			}
		}
		//set data with the new chars
		data = new String(dataArray);
		
		//recalculate the fitness and exp-fitness
		fitness = calcFitness(target);
		expFitness = Math.exp(fitness);
	}