//private string selectedValue;

        public static UIPartActionChooseOption CreateTemplate()
        {
            // Create the control
            GameObject editGo = new GameObject("UIPartActionChooseOption", SystemUtils.VersionTaggedType(typeof(UIPartActionChooseOption)));
            UIPartActionChooseOption edit = editGo.GetTaggedComponent<UIPartActionChooseOption>();
            editGo.SetActive(false);

            // TODO: since I don'type have access to EZE GUI, I'm copying out bits from other existing GUIs 
            // if someone does have access, they could do this better although really it works pretty well.
            UIPartActionButton evtp = UIPartActionController.Instance.eventItemPrefab;
            GameObject srcTextGo = evtp.transform.Find("Text").gameObject;
            GameObject srcBackgroundGo = evtp.transform.Find("Background").gameObject;
            GameObject srcButtonGo = evtp.transform.Find("Btn").gameObject;

            UIPartActionFloatRange paFlt = (UIPartActionFloatRange)UIPartActionController.Instance.fieldPrefabs.Find(cls => cls.GetType() == typeof(UIPartActionFloatRange));
            GameObject srcSliderGo = paFlt.transform.Find("Slider").gameObject;


            // Start building our control
            GameObject backgroundGo = (GameObject)Instantiate(srcBackgroundGo);
            backgroundGo.transform.parent = editGo.transform;

            GameObject sliderGo = (GameObject)Instantiate(srcSliderGo);
            sliderGo.transform.parent = editGo.transform;
            sliderGo.transform.localScale = new Vector3(0.81f, 1, 1);
            edit.slider = sliderGo.GetComponent<UIProgressSlider>();
            edit.slider.ignoreDefault = true;

            GameObject fieldNameGo = (GameObject)Instantiate(srcTextGo);
            fieldNameGo.transform.parent = editGo.transform;
            fieldNameGo.transform.localPosition = new Vector3(24, -8, 0);
            edit.fieldName = fieldNameGo.GetComponent<SpriteText>();

            GameObject incDownGo = (GameObject)Instantiate(srcButtonGo);
            incDownGo.transform.parent = edit.transform;
            incDownGo.transform.localScale = new Vector3(0.45f, 1.1f, 1f);
            incDownGo.transform.localPosition = new Vector3(11.5f, -9, 0); //>11
            edit.incDown = incDownGo.GetComponent<UIButton>();

            GameObject incDownLabelGo = (GameObject)Instantiate(srcTextGo);
            incDownLabelGo.transform.parent = editGo.transform;
            incDownLabelGo.transform.localPosition = new Vector3(5.5f, -7, 0); // <6
            SpriteText incDownLabel = incDownLabelGo.GetComponent<SpriteText>();
            incDownLabel.Text = "<<";

            GameObject incUpGo = (GameObject)Instantiate(srcButtonGo);
            incUpGo.transform.parent = edit.transform;
            incUpGo.transform.localScale = new Vector3(0.45f, 1.1f, 1f);
            incUpGo.transform.localPosition = new Vector3(187.5f, -9, 0); // >187
            edit.incUp = incUpGo.GetComponent<UIButton>();

            GameObject incUpLabelGo = (GameObject)Instantiate(srcTextGo);
            incUpLabelGo.transform.parent = editGo.transform;
            incUpLabelGo.transform.localPosition = new Vector3(181.5f, -7, 0); //<182
            SpriteText incUpLabel = incUpLabelGo.GetComponent<SpriteText>();
            incUpLabel.Text = ">>";

            return edit;
        }