using ByteBufferReader for native bytebuffer reading