definitely something to look at in another PR. On a side note. Your example does not `restore` the old behavior after the `yield` where the old code did using `ensure`.