new pipes func