introducing separate models for reading and writing operations