class _UpdatingUsersDict(_UpdatingDict[_UpdatingUser]):
+    _top_id: int
     userlen: int
 
-    def __init__(self, **kwargs) -> None:
-        super().__init__(**kwargs)
-        self._top_id = 0
-
     def __getitem__(self, key: str) -> _UpdatingUser:
         user = super().__getitem__(key)
         user.id_ = key
         return user
 
+    def clear(self) -> None:
+        super().clear()
+        self._top_id = 0
+        self._on_update()
+
     def id_for_nickuserhost(self,
                             nickuserhost: NickUserHost,
                             create_if_none=False,
 
 2 < :foo!~foobarbaz@baz.bar.foo JOIN #test
 1,2 $ users:me:user set to: [~foobarbaz]
 2 < :foo.bar.baz 353 foo @ #test :foo @bar
-1,2 $ users:4:nick set to: [?]
-1,2 $ users:4:nick set to: [bar]
+1,2 $ users:1:nick set to: [?]
+1,2 $ users:1:nick set to: [bar]
 2 < :foo.bar.baz 366 foo #test :End of /NAMES list.
 4 $ residents: bar, foo
 2 < :bar!~bar@bar.bar PRIVMSG #test :hi there
-1,2 $ users:4:user set to: [~bar]
-1,2 $ users:4:host set to: [bar.bar]
+1,2 $ users:1:user set to: [~bar]
+1,2 $ users:1:host set to: [bar.bar]
 4 < [bar] hi there
 
 > /quit