add reads and writes, reads remain buggy