PipeBuilder refactor