@classmethod
def instance(cls, *args, **kwargs):
    """
        Creates an instance of this class with all *args* and *kwargs*, saves it in
        :py:attr:`_instance`, and returns it. When :py:attr:`_instance` was already set before, no
        new instance is created.
        """
    if cls._instance is None:
        cls._instance = cls(*args, **kwargs)
    return cls._instance
