maybe add so that it updates an existing WidgetSelectionState for memory reasons.