Improve read()