revamp read/modify/write section