support transitive dependencies