added AbstractWidgetAware class