it is yet to be known why gcc hates pipes