public function getItems()
    {
        if ($this->isModulesFetched === false) {
            $this->isModulesFetched = true;

            // Fetch items from modules
            foreach (Yii::$app->getModules() as $id => $module) {
                /** @var \yii\base\Module $module */
                $module = Yii::$app->getModule($id);
                if (method_exists($module, 'coreMenu')) {
                    $this->addItems($module->coreMenu(), true);
                }

                // Submodules support
                foreach ($module->getModules() as $subId => $subModule) {
                    $subModule = $module->getModule($subId);
                    if (method_exists($subModule, 'coreMenu')) {
                        $this->addItems($subModule->coreMenu(), true);
                    }
                }
            }
        }

        return $this->_items;
    }