public void Initialize()
    {
        Debug.Log("Initialize Credit Bundles");

        switch (BuildPlatform.Platform)
        {
        case BuildPlatform.BuildPlatformType.Automatic:
            if (isWaitingForPlatform)
            {
                return;
            }
            isWaitingForPlatform = true;
            BuildPlatform.OnBuildPlatformFound += (platform) => {
                Debug.Log("Recived new build platform");
                Initialize();
            };
            return;

        case BuildPlatform.BuildPlatformType.Facebook:
            platformPurchasor = gameObject.AddComponent <FaceBookPurchaser>();
            break;

        case BuildPlatform.BuildPlatformType.Kongergate:
            platformPurchasor = gameObject.AddComponent <KongregatePurchase>();
            break;

        case BuildPlatform.BuildPlatformType.Android:
            platformPurchasor = gameObject.AddComponent <AndroidPremiumCurrencyPurchaser>();
            break;

        case BuildPlatform.BuildPlatformType.IOS:
            platformPurchasor = gameObject.AddComponent <iOSPremiumCurrencyPurchaser>();
            GameObject o = new GameObject("iOSConnect");
            o.AddComponent <iOSConnect>();
            break;

        case BuildPlatform.BuildPlatformType.CloudGoodsStandAlone:
            Debug.LogWarning("Cloud Goods Stand alone has not purchase method currently.");
            break;
        }

        if (platformPurchasor == null)
        {
            Debug.Log("platform purchasor is null");
            return;
        }

        platformPurchasor.RecievedPurchaseResponse += OnRecievedPurchaseResponse;
        platformPurchasor.OnPurchaseErrorEvent     += platformPurchasor_OnPurchaseErrorEvent;

        if (BuildPlatform.Platform == BuildPlatform.BuildPlatformType.EditorTestPurchasing)
        {
            Debug.Log("Get credit bundles from editor");

            CloudGoods.GetCreditBundles(1, OnPurchaseBundlesRecieved);
        }
        else
        {
            Debug.Log("Purchasing credit bundles from platform:" + BuildPlatform.Platform);
            CloudGoods.GetCreditBundles((int)BuildPlatform.Platform, OnPurchaseBundlesRecieved);
        }

        isInitialized = true;
    }