added highWaterMark option to cross refference bufferSize