class ClientDbBase:
-    'Optimized for dealing with variable confirmation of values.'
+    'For values of variable confirmation, and reading in multi-line lists.'
     client_host: str
     isupports: list[str]
     motd: list[str]
             return value
         return None
 
-    def __setattr__(self, key: str, value) -> None:
-        raise CrashingException('no direct attribute setting, use .set() etc.')
+    def __setattr__(self, key: str, *args, **kwargs) -> None:
+        if key[:1] == '_':
+            super().__setattr__(key, *args, **kwargs)
+        else:
+            raise CrashingException(
+                    'no direct attribute setting, use .set() etc.')
 
     @classmethod
     def _type_for(cls, key):