generate pipes