use bytebuffer array