private function initAdapterFactories()
    {
        $this->adapterFactories = [];

        foreach ($this->loadAdapterFactories() as $adapter) {
            if (!$adapter instanceof AdapterFactoryInterface) {
                throw new UnexpectedTypeException($adapter, AdapterFactoryInterface::class);
            }

            $this->adapterFactories[get_class($adapter)] = $adapter;
        }
    }