dont call buffersubdata too often