adjust read/write api