caching: cosmetics
caching: use finally_ to not reset the state