refactor device info