refactor widget.visible and IATWidgetVisibility