private boolean hasSufficientSimilarity(float coverage, PDFEntryHolder entryHolder, boolean isMalformed)
	{
		float minCoverage = 0.99f;
		
		// text does have difference min coverage depending on their length
		if(entryHolder instanceof PDFTextHolder)
		{
			// SIMPLE mode
			if(isSimpleComparison)
			{
				// broken text element get 10% extra
				float reduceCoverage = (isMalformed) ? 0.1f : 0.0f;
								
				minCoverage = 0.65f - reduceCoverage;
			}
			else
			{
				// STRUCTURAL mode
				String text = ((PDFTextHolder)entryHolder).getText();
		
				// for each char less 5 the coverage gets reduced by 2%
				// e.g. 1 letter text = 10% reduction
				// 4 letter ext = 2 %
				float reduceCoverage = (float)(10 - text.length() * 2) / 100;	
				
				// broken text element get 10% extra
				if(isMalformed)
					reduceCoverage += 0.1f; 
				
				if(reduceCoverage < 0)
					reduceCoverage = 0;
					
				minCoverage = 0.85f - reduceCoverage;
			}
		}
			
		return (coverage > minCoverage) ? true : false;
	}