Documented the Widget class and made the name of widgets be set directly by the widget class