adding caching to resolve
failed attempt to do this all async