add .end() to receive pipe end