be even more careful about writing on read