device register, retrieve device list