added pipe and channel