major cleanup and re-aligning
simplify code and reusability by grouping pipes into more subtypes and put common functionality there :)
better code :)
starting better pipe helper design - modules and classes work together :)