wrote an extensive test to test read()