docs: def factory(cls, **kwargs):
      """
      Factory method that can be used to easily instantiate a class instance
  
      :param cls: The name of the class
      :param kwargs: Keyword arguments
      :return: An instance of the class or None if the name doesn't match any
          known class.
      """
      for name, obj in inspect.getmembers(sys.modules[__name__]):
          if inspect.isclass(obj) and issubclass(obj, UserAuthnMethod):
              try:
                  if obj.__name__ == cls:
                      return obj(**kwargs)
              except AttributeError:
                  pass