public List<Subsumer> getLCSbyIC( PathFinder pathFinder, 
		Concept synset1, Concept synset2, StringBuilder tracer ) {
		List<Subsumer> paths = pathFinder.getAllPaths( synset1, synset2, tracer );
		if ( paths == null || paths.size()==0 ) return null;
		
		for ( Subsumer path : paths ) {
			path.ic = ic( pathFinder, path.subsumer );
		}
		
		// in desc order (b <==> a)
		Collections.sort( paths, new Comparator<Subsumer>() {
			public int compare( Subsumer s1, Subsumer s2 ) {
				if ( s1.ic < s2.ic ) {
					return 1;
				} else if ( s1.ic > s2.ic ) {
					return -1;
				} else {
					return 0;
				}
			}
		});
		
		List<Subsumer> results = new ArrayList<Subsumer>( paths.size() );  
		
		// determine which subsumers have the highest info content; do some tracing as well
		for ( Subsumer path : paths ) {
			if ( path.ic == paths.get(0).ic ) {
				results.add( path );
			}
		}
		
		return results;
	}