utility: pushIfNotExists
rewrite component diagramer (cd)
fix: cd: context issue
fix: cd: default dependency generator