Nothing having to do with this PR, except that I needed the shared logic for `get_or_initialize` below, so created this abstract class.