              result->location[whichRead] = bestResultGenomeLocation[whichRead];
              result->direction[whichRead] = bestResultDirection[whichRead];
 +			float hits_per_lookup = (float)(totalHashTableHits[whichRead][FORWARD] + totalHashTableHits[whichRead][RC]) / countOfHashTableLookups[whichRead];
-+			result->features[whichRead].init(bestResultScore[whichRead],
++			result->features[whichRead].init(bestResultScore[whichRead] == 0 &&
++											   bestResultScore[whichRead ^ 1] == 0 &&
++											   probabilityOfAllPairs <= probabilityOfBestPair &&
++											   popularSeedsSkipped[0] + popularSeedsSkipped[1] == 0,
++											 bestResultScore[whichRead],
 +											 0xffff,
 +											 probabilityOfAllPairs,
 +											 probabilityOfBestPair,

+			  float _hitsPerLookup,
+			  float _hitsPerLookupPair)
+	{
+		bestScore = _bestScore;
+		secondBestScore = _secondBestScore;
+		probabilityOfAllCandidates = _probabilityOfAllCandidates;

+		hitsPerLookupPair = _hitsPerLookupPair;
+	}
+
+	unsigned bestPossible;
+	unsigned bestScore;
+	unsigned secondBestScore;
+	double probabilityOfAllCandidates;
