add 'device' api