public PieceWiseControl Initialize(CalcManager cm)
    {
        this.calcManager  = cm;
        this.paramSurface = cm.paramSurface;
        paramSurface.CreateExpressionSet();
        //calcManager.ChangeExpressionSet(paramSurface.expressionSets[0]);

        responder = new KeyboardInputResponder(this);
        menu.RegisterResponder(responder);
        //create saved copy of first tab
        saveTab = Instantiate(firstTab, firstTab.transform.position, firstTab.transform.rotation, firstTab.transform.parent);
        saveTab.transform.localScale = firstTab.transform.localScale;
        saveTab.SetActive(false);
        //find distance between plus and 1 for use in future spacing
        distanceBetween = plusTab.transform.localPosition - firstTab.transform.localPosition;

        tabList.Add(firstTab);
        SwitchToTab(firstTab);

        return(this);
    }
    protected void HandleInput(FlexActionableComponent sender)
    {
        switch (sender.name)
        {
        case "+":
            paramSurface.CreateExpressionSet();
            AddTab();
            break;

        case "delete":
            DeleteTab(currTab.name);
            break;

        case "clear":
            ClearAll();
            break;

        default:
            SwitchToTab(sender.gameObject);
            break;
        }
    }