pipe takes priority over args