So pushing the code to the widgets isn't required, but at the very least all schemes must be reset as well. And obviously that would be cleaner to handle by each widget in case even more complicated ones are added later so it's contained.