diff --git a/lib/utilities.py b/lib/utilities.py
index 8f23b33..ce8fa3b 100755
--- a/lib/utilities.py
+++ b/lib/utilities.py
@@ -60,15 +60,15 @@
 ################################################################
 def get_inventory_list(module_name):
 
-    l = []
+    inventory_list = []
     m = imp.load_source('module.name', module_name)
 
     for i in m.ID_LOOKUP['FRU']:
         s = m.ID_LOOKUP['FRU'][i]
         s = s.replace('<inventory_root>', m.INVENTORY_ROOT)
-        l.append(s)
+        inventory_list.append(s)
 
-    return l
+    return inventory_list
 
 
 ################################################################
@@ -80,15 +80,15 @@
 #   /org/openbmc/inventory//system/chassis/motherboard/cpu1]
 ################################################################
 def get_inventory_fru_type_list(module_name, fru):
-    l = []
+    inventory_list = []
     m = imp.load_source('module.name', module_name)
 
     for i in m.FRU_INSTANCES.keys():
         if m.FRU_INSTANCES[i]['fru_type'] == fru:
             s = i.replace('<inventory_root>', m.INVENTORY_ROOT)
-            l.append(s)
+            inventory_list.append(s)
 
-    return l
+    return inventory_list
 
 
 ################################################################
@@ -100,7 +100,7 @@
 #   /org/openbmc/inventory/system/chassis/motherboard/dimm1]
 ################################################################
 def get_vpd_inventory_list(module_name, fru):
-    l = []
+    inventory_list = []
     m = imp.load_source('module.name', module_name)
 
     for i in m.ID_LOOKUP['FRU_STR']:
@@ -108,9 +108,9 @@
 
         if m.FRU_INSTANCES[x]['fru_type'] == fru:
             s = x.replace('<inventory_root>', m.INVENTORY_ROOT)
-            l.append(s)
+            inventory_list.append(s)
 
-    return l
+    return inventory_list
 
 
 def call_keyword(keyword):
