type read & write