added deviceinfo class