automatic lower case; caching results.