split idempotence specs so errors are clearly identifiable. see #44