public final ObjectProperty<ToggleGroup> toggleGroupProperty() {
        if (null == toggleGroup) {
            toggleGroup = new ObjectPropertyBase<ToggleGroup>() {
                private ToggleGroup oldToggleGroup;
                @Override protected void invalidated() {
                    final ToggleGroup toggleGroup = get();
                    if (null != toggleGroup && !toggleGroup.getToggles().contains(IconSwitch.this)) {
                        if (oldToggleGroup != null) {
                            oldToggleGroup.getToggles().remove(IconSwitch.this);
                        }
                        toggleGroup.getToggles().add(IconSwitch.this);
                    } else if (null == toggleGroup) {
                        oldToggleGroup.getToggles().remove(IconSwitch.this);
                    }
                    oldToggleGroup = toggleGroup;
                }
                @Override public Object getBean() { return IconSwitch.this; }
                @Override public String getName() { return "toggleGroup"; }
            };
        }
        return toggleGroup;
    }