read/write preconditions and parameter output