added getDeviceId()