working on reads and writes