use resourceService/cache for record; store sub-objects in relevant caches