Maybe explain the relation between **flush** and **flushSize**, for instance that **Flush** will be automatically set to `true` if `flushSize > 0` as happening at:

````
               if (this.flushSize > 0) {
                        this.flush = true;
                }
                else if (this.flush) {
                        this.flushSize = 1;
                }
````