I don't think we want the entire underlying array from the ByteBuffer since it could be shared. We'll have to copy it out to a newly allocated `Arrray[Byte]`