if key[0] != '_':
             self._on_update(key)
 
-    def __getattribute__(self, key: str):
-        if key[0] != '_':
-            compl_key = self._completable_key(key)
-            if hasattr(self, compl_key):
-                return getattr(self, compl_key).visible
-        return super().__getattribute__(key)
-
-    @staticmethod
-    def _completable_key(key):
-        return f'_completable_{key}'
-
-    def _on_completable(self, method: str, key: str, value: str, stay_complete
-                        ) -> None:
-        completable = getattr(self, self._completable_key(key))
-        getattr(completable, method)(value, stay_complete)
-        if stay_complete:
-            self._on_update(key)
-
-    def append_completable(self, key: str, value: str, stay_complete=False
-                           ) -> None:
-        'To completable list of key append value.'
-        self._on_completable('append', key, value, stay_complete)
-
-    def remove_completable(self, key: str, value: str, stay_complete=False
-                           ) -> None:
-        'From completable list of key remove value.'
-        self._on_completable('remove', key, value, stay_complete)
-
-    def declare_complete(self, key: str) -> None:
-        'Declare completable at key complete.'
-        getattr(self, self._completable_key(key)).is_complete = True
-        self._on_update(key)
-
 
 class SharedChannelDbFields:
     'API for fields shared directly in name and type with TUI.'
 class SharedClientDbFields(IrcConnSetup, Generic[_ChannelDbFields]):
     'API for fields shared directly in name and type with TUI.'
     connection_state: str
+    motd: tuple[str, ...]
     sasl_account: str
     sasl_auth_state: str
     user_modes: str
     caps: _UpdatingDict
     isupports: _UpdatingDict
     users: _UpdatingDict
-    _completable_motd: _CompletableStringsList
+    _completable_motd: list[str]
     _channels: dict[str, _ChannelDb]
 
+    def _get_completable(self, key) -> list[str]:
+        return getattr(self, f'_completable_{key}')
+
+    def append_completable(self, key: str, value: str) -> None:
+        'To completable list of key append value.'
+        self._get_completable(key).append(value)
+
+    def declare_complete(self, key: str) -> None:
+        'Declare completable at key complete.'
+        completable = self._get_completable(key)
+        setattr(self, key, tuple(completable))
+        completable.clear()
+
     def user_id(self, query: str | _NickUserHost) -> str:
         'Return user_id for nickname of entire NickUserHost, create if none.'
         nick = query if isinstance(query, str) else query.nick