This check I'm not sure about; if we don't create the device that contains these, then we won't have the device to update in the first place. Maybe have a null check where we call Update() instead?