add caching and use metaphone for testing as well