public void ShowLines()
    {
        bool shouldReinitialize = curves.Count == 0;

        //first startup + setup objects
        for (int i = 0; i < points.Length; i++)
        {
            BezierCurve c = null;
            if (shouldReinitialize)
            {
                //curve object
                c = Instantiate(curvePrefab, root);
                curves.Add(c);

                //3d model
                c.InstantiateModel(points[i].selectedPrefab);
            }
            else
            {
                c = curves[i];
            }

            c.transform.localEulerAngles = points[i].eulerAngles;

            levelSelector.AddLevel(points[i]);

            if (i == 0)
            {
                continue;
            }

            c.Setup(curves[i - 1].GetLookAtPosition());
            c.ShowLine(root.position, lineDefinition);
        }
    }