Add transitive closure support