add read & readrow