public static void RegisterAsRegisterSlot(CodeLine line, Button immSlot, Text label, int operandNumber)
    {
        HighlightAsImmediateSlot temp = (Immediate imm, Color c) =>
        {
            label.color = c;
            immSlot.onClick.AddListener(() =>
            {
                switch (operandNumber)
                {
                case 0:
                    line.setOperand1(imm);
                    break;

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

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

                default:
                    break;
                }
            });
        };

        instance.buttonToDelegateMap.Add(immSlot, temp);
        instance.immediateSlotHighlighter += temp;
        instance.disableHighlighting      += (Color n) =>
        {
            immSlot.onClick.RemoveAllListeners();
            label.color = n;
        };
    }
    public static void DeregisterAsImmediateSlot(Button immSlot)
    {
        if (!instance.buttonToDelegateMap.ContainsKey(immSlot))
        {
            return;
        }
        HighlightAsImmediateSlot temp = instance.buttonToDelegateMap[immSlot];

        if (temp != null)
        {
            instance.immediateSlotHighlighter -= temp;
        }
    }