replaced jarowinkler implementation