remove statement contracts
simplify signature of ReadThenWrite