var factory = function (callback) {
  var _transform = function (chunk, encoding, done) {
        var length = chunk.readUInt32LE(0)
          , self = this

        callback.call(this, chunk.slice(4, 4 + length), encoding, function (err) {
          chunk = chunk.slice(4 + length)

          if (err)
            done(err)
          else if (chunk.length === 0)
            done()
          else
            _transform.call(self, chunk, encoding, done)
        })
      }

  return _transform
}

module.exports = factory
@@ -58,16 +58,24 @@
 nction (
+stream, 
 chunk, e
@@ -137,32 +137,8 @@
 E(0)
-%0A          , self = this
 %0A%0A  
@@ -161,12 +161,14 @@
 all(
-this
+stream
 , ch
@@ -403,18 +403,15 @@
 form
-.call(self
+(stream
 , ch
@@ -460,26 +460,106 @@
  return 
-_transform
+function (chunk, encoding, callback) %7B%0A    _transform(this, chunk, encoding, callback)%0A  %7D
 %0A%7D%0A%0Amodu

reduce calls to Function.call