removed basemap widget, cleaned up and added a widget factory