adding caching back in