i should probably learn more about piping