with getAndHit this logic also becomes (slightly) simpler.