Reorganize the widget to support new CoreWidget