moved pipe so it's not dependent on filesystem