I'm surprised this and `_next_usage_id` are separate methods, since they are only called from one place, and are small, and related to the caller.