private ElementToRenderableConverter getBestRenderableConverter(Element e,
			List<ElementGuesser> candidates) {
		Map<ElementToRenderableConverter, Double> converterConfidences = new HashMap<ElementToRenderableConverter, Double>();
		Map.Entry<ElementToRenderableConverter, Double> bestEntry = null;

		for (ElementGuesser guesser : candidates) {
			Map<ElementToRenderableConverter, Double> returnValue = guesser
					.guess(e, this);
			for (Map.Entry<ElementToRenderableConverter, Double> entry : returnValue
					.entrySet()) {
				Double confidenceValue = converterConfidences.get(entry
						.getKey());
				if (confidenceValue == null) {
					confidenceValue = entry.getValue();
				} else {
					confidenceValue += entry.getValue();
				}
				converterConfidences.put(entry.getKey(), confidenceValue);
				if ((bestEntry == null)
						|| (confidenceValue > bestEntry.getValue())) {
					bestEntry = entry;
				}
			}
		}
		// System.out.println(":bestEntry:" + bestEntry.getKey() + ":" +
		// bestEntry.getValue());
		return bestEntry.getKey();
	}