private void Initialize()
        {
            _optionalComponents = new List<Component>();
            _requiredComponents = new List<Component>();

            _graphic = new BeadGraphic();
            _position = new Position();
            _button = new MenuButton();
            _buttonGraphic = new ButtonGraphic(_graphic);
            _requiredComponents.Add(_graphic);
            _requiredComponents.Add(_buttonGraphic);
            _requiredComponents.Add(_position);
            _requiredComponents.Add(_button);
        }
        private void StartButton(string name, ButtonType type, BeadGraphic baseGraphic, Color pressedColor, Action<bool> callback)
        {
            Initialize();
            _name = name;
            _graphic = baseGraphic;
            _button.Callback = callback;
            _button.Type = type;

            _buttonGraphic = new ButtonGraphic(baseGraphic, pressedColor);

            switch (type)
            {
                case (ButtonType.Build):
                    _position.Coords = GetBuildCoords();
                    break;
            }
        }