I would invert this so the if blocks use `with?`