public static function getInstance(
        $class = null,
        array $options = []
    ) {
        /** @var Implementation $instance */
        if (is_null(self::$instance)) {
            if (is_null($class)) {
                self::$instance = self::makeInstance(
                    Implementation::class, $options
                )->getApp($options);

                self::$instance->load();
            } else {
                ! is_object($class) || self::$instance = $class;
            }
        }
        return self::$instance;
    }