new class: SIAM::DeviceComponent