split out pipeline handling