Restructure to support new CoreWidget