docs: def _add_client(self, url, key=None, secret=None):
          """ Creates Client object with key and secret for server
          and adds it to _server_cache if it doesnt already exist """
  
          if "://" in url:
              server, endpoint = self._deconstruct_url(url)
          else:
              server = url
  
          if server not in self._server_cache:
              if not (key and secret):
                  client = Client(
                      webfinger=self.client.webfinger,
                      name=self.client.name,
                      type=self.client.type,
                  )
                  client.set_pump(self)
                  client.register(server)
              else:
                  client = Client(
                      webfinger=self.client.webfinger,
                      key=key,
                      secret=secret,
                      type=self.client.type,
                      name=self.client.name,
                  )
                  client.set_pump(self)
  
              self._server_cache[server] = client