public static void DeregisterAsRegisterSlot(Button regSlot)
    {
        if (!instance.buttonToDelegateMap.ContainsKey(regSlot))
        {
            return;
        }
        HighlightAsRegisterSlot temp = instance.buttonToDelegateMap[regSlot];

        if (temp != null)
        {
            instance.registerSlotHighlighter -= temp;
        }
    }
    public static void RegisterAsRegisterSlot(CodeLine line, Button regSlot, Text label, int operandNumber)
    {
        HighlightAsRegisterSlot temp = (Register.REGISTERS reg, Color c) =>
        {
            label.color = c;
            regSlot.onClick.AddListener(() =>
            {
                Register r = new Register(reg);
                switch (operandNumber)
                {
                case 0:
                    line.setOperand1(r);
                    break;

                case 1:
                    line.setOperand2(r);
                    break;

                case 2:
                    line.setOperand3(r);
                    break;

                default:
                    break;
                }
            });
        };

        instance.buttonToDelegateMap.Add(regSlot, temp);
        instance.registerSlotHighlighter += temp;
        instance.disableHighlighting     += (Color n) =>
        {
            regSlot.onClick.RemoveAllListeners();
            label.color = n;
        };
    }