added levenshtein implementations