added levenshtein algorithm