public override void Initialize()
    {
        base.Initialize();

        if (isInit)
        {
            return;
        }

        activeFeature = true;

        isInit = true;

        BIWCatalogManager.Init();

        CreateControllers();
        InitReferences();


        if (builderInWorldBridge != null)
        {
            builderInWorldBridge.OnCatalogHeadersReceived += CatalogHeadersReceived;
            builderInWorldBridge.OnBuilderProjectInfo     -= BuilderProjectPanelInfo;
        }

        userProfile = UserProfile.GetOwnUserProfile();
        if (!string.IsNullOrEmpty(userProfile.userId))
        {
            updateLandsWithAcessCoroutine = CoroutineStarter.Start(CheckLandsAccess());
        }
        else
        {
            userProfile.OnUpdate += OnUserProfileUpdate;
        }

        InitHUD();

        BIWTeleportAndEdit.OnTeleportEnd += OnPlayerTeleportedToEditScene;

        ConfigureLoadingController();
        InitControllers();

        CommonScriptableObjects.builderInWorldNotNecessaryUIVisibilityStatus.Set(true);

        builderInWorldBridge.AskKernelForCatalogHeaders();

        isCatalogLoading = true;
        BIWNFTController.i.Initialize();
        BIWNFTController.i.OnNFTUsageChange += OnNFTUsageChange;

        editModeChangeInputAction              = context.inputsReferencesAsset.editModeChangeInputAction;
        editModeChangeInputAction.OnTriggered += ChangeEditModeStatusByShortcut;

        biwAudioHandler = GameObject.Instantiate(context.projectReferencesAsset.audioPrefab, Vector3.zero, Quaternion.identity).GetComponent <BuilderInWorldAudioHandler>();
        biwAudioHandler.SetReferences(context);
        biwAudioHandler.gameObject.SetActive(false);
    }