now does reads and writes