Simple async caching