self._dict: dict[str, DictItem] = {}
         super().__init__(**kwargs)
 
+    def keys(self) -> tuple[str, ...]:
+        'Keys of item registrations.'
+        return tuple(self._dict.keys())
+
     def __getitem__(self, key: str) -> DictItem:
         return self._dict[key]
 
     def __delitem__(self, key: str) -> None:
         del self._dict[key]
 
-    def keys(self) -> tuple[str, ...]:
-        'Keys of item registrations.'
-        return tuple(self._dict.keys())
-
     def values(self) -> tuple[DictItem, ...]:
         'Items registered.'
         return tuple(self._dict.values())
         'Wipe updating attributes.'
         for key, value in [(k, v) for k, v in self._deep_annotations().items()
                            if k not in self._keep_on_clear]:
-            if isinstance(value, (_Dict, _CompletableStringsList)):
-                value.clear()
-            elif isinstance(value, str):
+            if hasattr(value, 'clear'):
+                getattr(self, key).clear()
+            elif issubclass(value, str):
                 setattr(self, key, '')
 
     def purge_users(self) -> None:
 
                     _ChannelWindow if self.db.is_chan_name(chatname)
                     else _QueryWindow)
             kwargs['chatname'] = chatname
-            kwargs['get_nick_data'] = lambda: self.db.users['me'].nick
+            kwargs['get_nick_data'] = lambda: (self.db.users['me'].nick
+                                               if 'me' in self.db.users.keys()
+                                               else '?')
         win = self._tui_new_window(**kwargs)
         self.windows += [win]
         return win