public void index(Wordlist words) {
        initIndex();
        ArrayList<Character> vowelsFound = new ArrayList<Character>();
        int positionIndex = 0;
        for (Word word: words) {
            positionIndex++;
            if ( !word.indexable ) continue;
            vowelsFound.clear();
            for (int i=0; i<word.word.length(); i++)
                if (Word.VOWELS.indexOf(word.word.charAt(i)) > -1)
                    vowelsFound.add(word.word.charAt(i));
            if (vowelsFound.size() <= 1) continue;
            for (int i=0; i<vowelsFound.size(); i++) {
                for (int j=0; j<vowelsFound.size(); j++) {
                    if (i != j)
                        index.get(buildKey(vowelsFound.get(i), vowelsFound.get(j))).add(positionIndex);
                }
            }
        }

        int i = 0;
        for (String key: index.keySet()) counts[i++] = new Popularity(key, index.get(key).size());

        Arrays.sort(counts, new Comparator<Popularity>() {
            @Override
            public int compare(Popularity o1, Popularity o2) {
                return o2.count - o1.count;
            }
        });
    }