Good approach! But let's try to avoid calling `apply`, where possible.

And additional advice, you could pass `true` as an argument for async write and `false` for a synchronous write and call `writeSync`/`write` in the `_processChunk`.