keep tabs on read and write operations