public function addExtension(ExtensionInterface $extension): App
    {
        try {
            if (!$extension->isInitialized()) {
                $extension->init($this);
            }
        } catch (\Exception $e) {
            throw new RuntimeException(sprintf('Unable to load extension "%s"', get_class($extension)));
        }

        return $this;
    }