with pipes