add read and write