add read and write functions