add pipe interface