feat: add device option