add duct.appedn(duct), and missing flow.produceTo