reads and writes byte blocks =3