support addDevice()