class _UpdatingDict(_UpdatingMixin, _Dict[DictItem]):
     _create_if_none: Optional[dict[str, Any]] = None
 
-    @property
-    def _values_are_updating(self) -> bool:
-        return _UpdatingMixin in self._item_cls.__mro__
-
     def __getitem__(self, key: str) -> DictItem:
         if key not in self._dict:
             if self._create_if_none is not None:
                 kw = {} | self._create_if_none
-                if self._values_are_updating:
+                if _UpdatingMixin in self._item_cls.__mro__:
                     kw |= {'on_update':
                            lambda *steps: self._on_update(key, *steps)}
-                self._dict[key] = self._item_cls(**kw)
+                self[key] = self._item_cls(**kw)
         return super().__getitem__(key)
 
     def __setitem__(self, key: str, val: DictItem) -> None: