added levenshtein minimum edit distance