add pipe support