Added widget controller, more abstraction for widgets. Refresh is done on the widget controller, so no need for implementation in the widget itself.