This is ready. I have an idea on how to avoid `this.buffer = this.buffer.concat(data)`/`this.buffer += data.toString()` for most cases. Let's jam later today