added caching back in