diff --git a/cli/device.py b/cli/device.py
index d503c48..37513df 100644
--- a/cli/device.py
+++ b/cli/device.py
@@ -75,28 +75,13 @@
 
     def do_show(self, line):
         """Show detailed device information"""
-        omit_fields = {
-            'pm_configs',
-            'flows',
-            'flow_groups',
-            'ports',
-            'parent_port_no',
-            'reason',
-            'vlan',
-            'parent_id',
-            'root',
-            'type',
-            'vendor',
-            'id'
-        }
         print_pb_as_table('Device {}'.format(self.device_id),
-                          self.get_device(depth=-1), omit_fields)
+                          self.get_device(depth=-1))
 
     def do_ports(self, line):
         """Show ports of device"""
         device = self.get_device(depth=-1)
         omit_fields = {
-            'peers'
         }
         print_pb_list_as_table('Device ports:', device.ports,
                                omit_fields, self.poutput)
@@ -249,7 +234,7 @@
 
         omit_fields = {'groups', 'metrics', 'id'}
         print_pb_as_table('PM Config:', self.pm_config_last, omit_fields,
-                          self.poutput)
+                          self.poutput,show_nulls=True)
         if self.pm_config_last.grouped:
             #self.poutput("Supported metric groups:")
             for g in self.pm_config_last.groups:
@@ -257,7 +242,8 @@
                     omit_fields = {'metrics'}
                 else:
                     omit_fields = {'group_freq','metrics'}
-                print_pb_as_table('', g, omit_fields, self.poutput) 
+                print_pb_as_table('', g, omit_fields, self.poutput,
+                                  show_nulls=True)
                 if g.enabled:
                     state = 'enabled'
                 else:
@@ -265,7 +251,7 @@
                 print_pb_list_as_table(
                     'Metric group {} is {}'.format(g.name,state),
                     g.metrics, {'enabled', 'sample_freq'}, self.poutput,
-                    dividers=100)
+                    dividers=100, show_nulls=True)
         else:
             if self.pm_config_last.freq_override:
                 omit_fields = {}
diff --git a/cli/logical_device.py b/cli/logical_device.py
index 9efd6ae..f3a3f7e 100644
--- a/cli/logical_device.py
+++ b/cli/logical_device.py
@@ -63,24 +63,8 @@
 
     def do_show(self, _):
         """Show detailed logical device information"""
-        omit_fields = {
-            'flow_groups',
-            'flows',
-            'ports',
-            'switch_features.auxiliary_id',
-            'switch_features.capabilities',
-            'switch_features.datapath_id',
-            'switch_features.n_buffers',
-            'switch_features.n_tables',
-            'desc.dp_desc',
-            'desc.hw_desc',
-            'desc.mfr_desc',
-            'desc.serial_num',
-            'desc.sw_desc',
-            'datapath_id'
-        }
         print_pb_as_table('Logical device {}'.format(self.logical_device_id),
-                          self.get_logical_device(depth=-1), omit_fields)
+                          self.get_logical_device(depth=-1))
 
     def do_ports(self, _):
         """Show ports of logical device"""
@@ -88,9 +72,7 @@
         omit_fields = {
             'ofp_port.advertised',
             'ofp_port.peer',
-            'ofp_port.max_speed',
-            'ofp_port.supported',
-            'ofp_port.config'
+            'ofp_port.max_speed'
         }
         print_pb_list_as_table('Logical device ports:', device.ports,
                                omit_fields, self.poutput)
@@ -121,13 +103,7 @@
             'hardware_version',
             'software_version',
             'firmware_version',
-            'serial_number',
-            'parent_port_no',
-            'vlan',
-            'ports',
-            'reason',
-            'root',
-            'parent_id'
+            'serial_number'
         }
         print_pb_list_as_table('Devices:', devices, omit_fields, self.poutput)
 
diff --git a/cli/main.py b/cli/main.py
index c31000c..ec84bf5 100755
--- a/cli/main.py
+++ b/cli/main.py
@@ -176,13 +176,7 @@
             'hardware_version',
             'software_version',
             'firmware_version',
-            'serial_number',
-            'parent_port_no',
-            'vlan',
-            'ports',
-            'reason',
-            'root',
-            'parent_id'
+            'serial_number'
         }
         print_pb_list_as_table('Devices:', devices, omit_fields, self.poutput)
 
@@ -196,13 +190,7 @@
             'desc.sw_desc',
             'desc.dp_desc',
             'desc.serial_number',
-            'desc.serial_num',
-            'switch_features.n_buffers',
-            'switch_features.n_tables',
-            'switch_features.auxiliary_id',
-            'switch_features.datapath_id',
-            'switch_features.capabilities',
-            'ports'
+            'switch_features.capabilities'
         }
         print_pb_list_as_table('Logical devices:', res.items, omit_fields,
                                self.poutput)
diff --git a/cli/table.py b/cli/table.py
index 6db53bc..c3cf94d 100644
--- a/cli/table.py
+++ b/cli/table.py
@@ -90,7 +90,7 @@
 
 
 def print_pb_list_as_table(header, items, fields_to_omit=None,
-                           printfn=_printfn, dividers=10):
+                           printfn=_printfn, dividers=10, show_nulls=False):
     from cli.utils import pb2dict
 
     t = TablePrinter()
@@ -99,59 +99,44 @@
 
         def add(_row, pb, prefix='', number=0):
             d = pb2dict(pb)
-            l=[]
-            for field in sorted(pb._fields, key=lambda f: f.number):
-                l.append(field.name)
-            for field in d:
-                if field not in l:
-                    l.append(field)
-
-            field_number = 0
-            #for field in pb._fields:
-            for field in sorted(d, key=lambda f: l.index(f)):
-                #fname = prefix + field.name
-                fname = prefix + field
+            if show_nulls:
+                fields = pb.DESCRIPTOR.fields
+            else:
+                fields = pb._fields
+            for field in fields:
+                fname = prefix + field.name
                 if fname in fields_to_omit:
                     continue
-                #value = getattr(pb, field.name)
-                value = getattr(pb, field)
+                value = getattr(pb, field.name)
                 if isinstance(value, Message):
                     add(_row, value, fname + '.',
-                        100 * (number + field_number))
-                        #100 * (number + field.number))
+                        100 * (number + field.number))
                 else:
-                    t.add_cell(_row, number + field_number, fname,
-                               d.get(field))
-                    #t.add_cell(_row, number + field.number, fname,
-                    #           d.get(field.name))
-                field_number += 1
+                    t.add_cell(_row, number + field.number, fname,
+                               d.get(field.name))
 
         add(row, obj)
 
     t.print_table(header, printfn, dividers)
 
 
-def print_pb_as_table(header, pb, fields_to_omit={}, printfn=_printfn):
+def print_pb_as_table(header, pb, fields_to_omit={}, printfn=_printfn,
+                      show_nulls=False):
     from cli.utils import pb2dict
 
     t = TablePrinter()
 
     def pr(_pb, prefix=''):
         d = pb2dict(_pb)
-        l=[]
-        for field in sorted(pb._fields, key=lambda f: f.number):
-            l.append(field.name)
-        for field in d:
-            if field not in l:
-                l.append(field)
-        #for field in sorted(_pb._fields, key=lambda f: f.number):
-        for field in sorted(d, key=lambda f: l.index(f)):
-            #fname = prefix + field.name
-            fname = prefix + field
+        if show_nulls:
+            fields = _pb.DESCRIPTOR.fields
+        else:
+            fields = _pb._fields
+        for field in sorted(fields, key=lambda f: f.number):
+            fname = prefix + field.name
             if fname in fields_to_omit:
                 continue
-            #value = getattr(_pb, field.name)
-            value = getattr(_pb, field)
+            value = getattr(_pb, field.name)
             if isinstance(value, Message):
                 pr(value, fname + '.')
             elif isinstance(value, RepeatedCompositeFieldContainer):
@@ -162,8 +147,7 @@
             else:
                 row = t.number_of_rows()
                 t.add_cell(row, 0, 'field', fname)
-                #t.add_cell(row, 1, 'value', d.get(field.name))
-                t.add_cell(row, 1, 'value', d.get(field))
+                t.add_cell(row, 1, 'value', d.get(field.name))
 
     pr(pb)
 
