add DAG generation