this abd ByteBuffeReader probably should go in Bijection (but you can put them here first to move forward).