'TUI adaptions to Client.'
 # built-ins
 from getpass import getuser
-from dataclasses import dataclass, asdict as dc_asdict
+from dataclasses import asdict as dc_asdict
 from types import get_original_bases
 from typing import Any, Callable, Optional, Self, Sequence
 # ourselves
 _LOG_PREFIX_IN = '<'
 
 
-@dataclass
 class _Update:
-    path: tuple[str, ...]
-    value: Optional[Any] = None
+
+    def __init__(self, path: tuple[str, ...], value: Any) -> None:
+        self.path = path
+        for cls in [cls for cls in _UPDATING_DATACLASSES
+                    if isinstance(value, get_original_bases(cls)[1])]:
+            value = cls(**dc_asdict(value))
+        self.value = value
 
     @property
     def key(self) -> str:
 
     def update_db(self, update: _Update) -> bool:
         'Apply update to .db, and if changing anything, log and trigger.'
-        for cls in [cls for cls in _UPDATING_DATACLASSES
-                    if isinstance(update.value, get_original_bases(cls)[1])]:
-            update.value = cls(**dc_asdict(update.value))  # type: ignore
-            break
         result = self.db.recursive_set_and_report_change(update)
         if result is None:
             return False