work on separating reads from writes