private boolean unsetPossibleValueForSquare(int possibleValueToRemove, int squareIndex, int rowIndex, int colIndex){
		boolean modified = false;
		for (int i = getSquareTopCoordinate(squareIndex).getRowIndex(); i <= getSquareEndCoordinate(squareIndex).getRowIndex(); i++) {
			for (int j = getSquareTopCoordinate(squareIndex).getColIndex(); j <= getSquareEndCoordinate(squareIndex).getColIndex(); j++) {
				Cell cell = matrix.getCells()[i][j];
				if((colIndex == -1 && cell.getRowIndex() != rowIndex)
						|| (rowIndex == -1 && cell.getColIndex() != colIndex)){
					if(cell.getPossibleValues()[possibleValueToRemove]){
						cell.getPossibleValues()[possibleValueToRemove] = false;
						modified = true;
					}
				}
			}
		}
		if(modified){
			/*System.out.println("unsetPossibleValueForSquare. "
				+ "Possible value = " + possibleValueToRemove
				+ ", SquareIndex = " + squareIndex
				+ ", rowIndex = " + rowIndex
				+ ", colIndex = " + colIndex);*/
		}
		return modified;
	}