refactor widgets to require core :as core