Add in caching and fix terminoloy.