rebuilt from 'read'