private boolean[] mutateLine(boolean[] bs, ArrayList<Integer> arrayList) {
		ArrayList<Integer> bsList = getTally(bs);
		int cellsNeeded = getSum(arrayList) + arrayList.size() - 1;
		int used = 0;
		int currentInRow = 0;
		int currentGroup = 0;

		// Create new bsList
		for (int i = 0; i < bs.length; i++) {
			// If in the middle of a streak
			if (i > 0 && bs[i - 1]) {
				// Check if should continue
				if (currentInRow < arrayList.get(currentGroup)) {
					bs[i] = true;
					currentInRow++;
					used++;
					// Or end the current streak and move on
				} else if (currentInRow == arrayList.get(currentGroup)) {
					bs[i] = false;
					currentInRow = 0;
					used++;
					currentGroup++;
				}
			} else {

				double chanceNext = ((double)cellsNeeded - (double)used) / ((double)bs.length - (double)used);
				double rand = Math.random();
				
				if (rand < chanceNext) {
					// If chance of adding is correct
					bs[i] = true;
					currentInRow = 1;
					used++;
				} else {
					bs[i] = false;
				}
			}
		}

		// //Encourage the correct number of clumps
		// int deltaGroups = arrayList.size() - bsList.size();

		return bs;
	}