round-trip edit functionality