descendant caching fix