public void Initialize(int menuId, PurchaseableListMenuPresenter presenter, Purchaseable purchaseable)
    {
        this.menuId       = menuId;
        this.presenter    = presenter;
        this.purchaseable = purchaseable;

        imgBackground = GetComponent <Image>();
        ReloadUI();
    }
    public void Initialize(int menuId, PurchaseableListMenuPresenter presenter)
    {
        this.menuId    = menuId;
        this.presenter = presenter;

        if (presenter.ShouldDisplayOverallProgressBar(menuId))
        {
            GameObject progressBar = (GameObject)Instantiate(overallProgressPrefab, container.transform);
            progressBar.transform.localScale = Vector3.one;

            overallProgressBar = progressBar.GetComponentInChildren <Slider>();
            overallProgressBar.interactable = false;
            overallProgressLabel            = progressBar.GetComponentInChildren <Text>();
        }

        Purchaseable[] purchaseables = presenter.GetPurchaseables(menuId);
        listElements = new PurchaseableListMenuItem[purchaseables.Length];

        int  tierId   = -1;
        bool hasTiers = presenter.HasTiers(menuId);

        for (int i = 0; i < purchaseables.Length; i++)
        {
            Purchaseable purchaseable = purchaseables[i];

            if (hasTiers && tierId != purchaseable.GetTier())
            {
                GameObject tierHeader = (GameObject)Instantiate(purchaseableTierHeaderPrefab, container.transform);
                tierHeader.transform.localScale = Vector3.one;

                tierHeader.GetComponent <PurchaseableTierMenuItem>().SetTier(purchaseable.GetTier());

                tierId = purchaseable.GetTier();
            }

            GameObject row = (GameObject)Instantiate(purchaseableListItemPrefab, container.transform);
            row.transform.localScale = Vector3.one;

            PurchaseableListMenuItem item = row.GetComponent <PurchaseableListMenuItem>();
            item.Initialize(menuId, presenter, purchaseable);

            listElements[i] = item;
        }
    }