DeviceExtension and children refactoring