avoid mutating datum in idempontent

see also #283