I find this strange to have an int here, where the name makes me think it's a "definition".

I see two ways to solve this:
1. make this `last_registered_definition` a python property, returning an actual definition, and use another internal variable to know that this is a new definition. We could pass an argument to `add_view` which would take care of this, for instance.

2. just change the name of this variable to reflect it's a counter.

I really prefer 1. since it doesn't mean that people have to know the internals of this object. Using methods as APIs is IMO better than using properties, for instance.