public static List<Word> blur(int distance, String rawWord) {
        List<Word> returnList = new ArrayList<Word>(100000);
        String word = rawWord.toLowerCase().trim();

        Set<Word> returnSet = new HashSet<Word>(100000);
        for (int i=1; i<= distance; i++)  {
            List<String> alphabet = getAlphabetCombination(i);
            for (String junk: alphabet) {
               Set<Word> result = getVariants(junk.toCharArray(), word);
                returnSet.addAll(result);
//                System.out.println("Adding " + result.size());
//                System.out.println("new size after " + junk + " : " + returnSet.size());
            }
        }
        for (Word w: returnSet) {
            returnList.add(w);
        }
        Collections.sort(returnList);
        return returnList;
    }