final public static function getInstance(...$params)
    {
        $called = static::class;
        if (self::$instance instanceof $called) {
            return self::$instance;
        } else {
            return self::$instance = new $called(...$params);
        }
    }