code: function end() {
  		var err
  		var args = Array.prototype.slice.call(arguments)
  		var cb = typeof args[args.length - 1] === 'function' ? args.pop() : null
  		if (self.writable && args.length) write.apply(this, args.concat(afterWrite))
  		else afterWrite()
  
  		function afterWrite(e) {
  			if (e) err = e
  			destroy(afterDestroy)
  		}
  
  		function afterDestroy(e) {
  			if (e && !err) err = e
  			if (cb) {
  				var cbArgs = []
  				if (err) cbArgs.push(err)
  				cb.apply(this, cbArgs)
  			}
  		}
  	}
docs: end(message, handle, cb)