Moving err as first param in the callback to kee it more consistent with node.js conventions
pipe is async!