refactor PipeLine