updated caching to be per article