pure levenshtein impl