separate r/w ops