// Use this for initialization
    void Start()
    {
        scores                 = goalBeatController.GetBeatScore();
        scoreLength            = scores.Select(x => x.score.Count).OrderByDescending(x => x).First();
        scoreDisplays          = new List <Transform>();
        scoreDisplayItems      = new List <scoreDisplayItem>();
        initialMainPanelHeight = mainPanel.offsetMin.y;
        int scoreIndex = 0;

        //foreach (var score in scores)
        foreach (var score in scores)
        {
            var inst = Instantiate <Transform>(ScorePanelPrefab, this.transform);
            inst.GetComponent <Canvas>().overrideSorting = true;
            var rect       = inst.GetComponent <RectTransform>();
            var prefabRect = ScorePanelPrefab.GetComponent <RectTransform>();
            scoreDisplays.Add(inst);
            scoreDisplayItems.Add(new scoreDisplayItem {
                goalPosition = new Vector2(prefabRect.anchoredPosition.x, prefabRect.anchoredPosition.y), scoreDisplay = inst, score = score
            });

            var eventPanel = inst.GetComponent <Transform>().Find("eventPanel");
            for (int ev = 0; ev < scoreLength; ev++)
            {
                Transform itemToCreate;
                if (score.score[ev % score.score.Count])
                {
                    itemToCreate = prefabHitImage;
                }
                else
                {
                    itemToCreate = prefabRestImage;
                }

                var _event     = Instantiate <Transform>(itemToCreate, eventPanel);
                var _eventRect = _event.GetComponent <RectTransform>();

                eventPanelWidth  = eventPanel.GetComponent <RectTransform>().rect.width *canvas.scaleFactor;
                eventPanelHeight = eventPanel.GetComponent <RectTransform>().rect.height *canvas.scaleFactor;

                _eventRect.anchoredPosition = new Vector2(calculateEventXPosition(ev, scoreLength, eventPanelWidth, 0), _eventRect.anchoredPosition.y);

                scoreDisplayItems[scoreDisplayItems.Count - 1].events.Add(_event);
            }

            var iconTransform      = inst.GetComponent <Transform>().Find("Icon");
            var iconImageComponent = iconTransform.GetComponent <Image>();
            var soundBankImage     = soundBank.GetSoundBankItem(score.name).Icon;
            iconImageComponent.sprite = soundBankImage;

            //inst.parent = mainPanel.transform;
            scoreIndex += 1;
        }
    }