Each of these subclasses calls "update" themselves when appropriate and during their construction, so there's no need to also call it when the widget is created
Also, there's no need to call update on every single device when a device is added
There is nothing in base.update so there's no point to calling it
update
on every single device when a device is addedbase.update
so there's no point to calling it