removed read()