WIP: instituting idempotency typeclass