Add dbus interfaces to entity-manager

This adds dbus endpoints to the entity manager to
export available configurations. For more information
see docs folder in this repository.

This also reformats the json records to make thresholds
1-d arrays.

Change-Id: Iae5b9aa2bf5017ce2a24ec6b149ccdbc2fe70202
Signed-off-by: James Feist <james.feist@linux.intel.com>
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 17a51a7..6b7ca3a 100755
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -38,7 +38,7 @@
     ExternalProject_Add(boost-dbus
         PREFIX ${CMAKE_CURRENT_BINARY_DIR}/boost-dbus
         GIT_REPOSITORY ssh://git-amr-2.devtools.intel.com:29418/openbmc-boost-dbus
-        GIT_TAG fee38731bccba22b4157cc47afbf6434fec1eb6d
+        GIT_TAG e7dae9ce93226e6a7bf3d9101f457d29afac40c2
         CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${EXTERNAL_INSTALL_LOCATION} -DBOOST_ROOT=${BOOST_ROOT}
         CONFIGURE_COMMAND ""
         BUILD_COMMAND ""
diff --git a/configurations/1Ux16 Riser.json b/configurations/1Ux16 Riser.json
old mode 100755
new mode 100644
index 294bea6..ff5c9ee
--- a/configurations/1Ux16 Riser.json
+++ b/configurations/1Ux16 Riser.json
@@ -6,32 +6,30 @@
                 "bus": "$bus",
                 "name": "Riser 1 Temp",
                 "thresholds": [
-                    [
-                        {
-                            "direction": "greater than",
-                            "name": "upper critical",
-                            "severity": 1,
-                            "value": 80
-                        },
-                        {
-                            "direction": "greater than",
-                            "name": "upper non critical",
-                            "severity": 0,
-                            "value": 75
-                        },
-                        {
-                            "direction": "less than",
-                            "name": "lower non critical",
-                            "severity": 0,
-                            "value": 5
-                        },
-                        {
-                            "direction": "less than",
-                            "name": "lower critical",
-                            "severity": 1,
-                            "value": 0
-                        }
-                    ]
+                    {
+                        "direction": "greater than",
+                        "name": "upper critical",
+                        "severity": 1,
+                        "value": 80
+                    },
+                    {
+                        "direction": "greater than",
+                        "name": "upper non critical",
+                        "severity": 0,
+                        "value": 75
+                    },
+                    {
+                        "direction": "less than",
+                        "name": "lower non critical",
+                        "severity": 0,
+                        "value": 5
+                    },
+                    {
+                        "direction": "less than",
+                        "name": "lower critical",
+                        "severity": 1,
+                        "value": 0
+                    }
                 ],
                 "type": "TMP75"
             },
@@ -52,32 +50,30 @@
                 "bus": "$bus",
                 "name": "Riser 2 Temp",
                 "thresholds": [
-                    [
-                        {
-                            "direction": "greater than",
-                            "name": "upper critical",
-                            "severity": 1,
-                            "value": 80
-                        },
-                        {
-                            "direction": "greater than",
-                            "name": "upper non critical",
-                            "severity": 0,
-                            "value": 75
-                        },
-                        {
-                            "direction": "less than",
-                            "name": "lower non critical",
-                            "severity": 0,
-                            "value": 5
-                        },
-                        {
-                            "direction": "less than",
-                            "name": "lower critical",
-                            "severity": 1,
-                            "value": 0
-                        }
-                    ]
+                    {
+                        "direction": "greater than",
+                        "name": "upper critical",
+                        "severity": 1,
+                        "value": 80
+                    },
+                    {
+                        "direction": "greater than",
+                        "name": "upper non critical",
+                        "severity": 0,
+                        "value": 75
+                    },
+                    {
+                        "direction": "less than",
+                        "name": "lower non critical",
+                        "severity": 0,
+                        "value": 5
+                    },
+                    {
+                        "direction": "less than",
+                        "name": "lower critical",
+                        "severity": 1,
+                        "value": 0
+                    }
                 ],
                 "type": "TMP75"
             },
@@ -91,4 +87,4 @@
         "name": "1Ux16 Riser 2",
         "probe": "xyz.openbmc_project.FruDevice({'BOARD_PRODUCT_NAME': 'F1UL16RISER\\d', 'ADDRESS' : '0x51'})"
     }
-]
+]
\ No newline at end of file
diff --git a/configurations/2Ux8 Riser.json b/configurations/2Ux8 Riser.json
old mode 100755
new mode 100644
index 8824480..338328a
--- a/configurations/2Ux8 Riser.json
+++ b/configurations/2Ux8 Riser.json
@@ -6,32 +6,30 @@
                 "bus": "$bus",
                 "name": "Riser 1 Temp",
                 "thresholds": [
-                    [
-                        {
-                            "direction": "greater than",
-                            "name": "upper critical",
-                            "severity": 1,
-                            "value": 80
-                        },
-                        {
-                            "direction": "greater than",
-                            "name": "upper non critical",
-                            "severity": 0,
-                            "value": 75
-                        },
-                        {
-                            "direction": "less than",
-                            "name": "lower non critical",
-                            "severity": 0,
-                            "value": 5
-                        },
-                        {
-                            "direction": "less than",
-                            "name": "lower critical",
-                            "severity": 1,
-                            "value": 0
-                        }
-                    ]
+                    {
+                        "direction": "greater than",
+                        "name": "upper critical",
+                        "severity": 1,
+                        "value": 80
+                    },
+                    {
+                        "direction": "greater than",
+                        "name": "upper non critical",
+                        "severity": 0,
+                        "value": 75
+                    },
+                    {
+                        "direction": "less than",
+                        "name": "lower non critical",
+                        "severity": 0,
+                        "value": 5
+                    },
+                    {
+                        "direction": "less than",
+                        "name": "lower critical",
+                        "severity": 1,
+                        "value": 0
+                    }
                 ],
                 "type": "TMP75"
             },
@@ -52,32 +50,30 @@
                 "bus": "$bus",
                 "name": "Riser 2 Temp",
                 "thresholds": [
-                    [
-                        {
-                            "direction": "greater than",
-                            "name": "upper critical",
-                            "severity": 1,
-                            "value": 80
-                        },
-                        {
-                            "direction": "greater than",
-                            "name": "upper non critical",
-                            "severity": 0,
-                            "value": 75
-                        },
-                        {
-                            "direction": "less than",
-                            "name": "lower non critical",
-                            "severity": 0,
-                            "value": 5
-                        },
-                        {
-                            "direction": "less than",
-                            "name": "lower critical",
-                            "severity": 1,
-                            "value": 0
-                        }
-                    ]
+                    {
+                        "direction": "greater than",
+                        "name": "upper critical",
+                        "severity": 1,
+                        "value": 80
+                    },
+                    {
+                        "direction": "greater than",
+                        "name": "upper non critical",
+                        "severity": 0,
+                        "value": 75
+                    },
+                    {
+                        "direction": "less than",
+                        "name": "lower non critical",
+                        "severity": 0,
+                        "value": 5
+                    },
+                    {
+                        "direction": "less than",
+                        "name": "lower critical",
+                        "severity": 1,
+                        "value": 0
+                    }
                 ],
                 "type": "TMP75"
             },
@@ -91,4 +87,4 @@
         "name": "2Ux8 Riser 2",
         "probe": "xyz.openbmc_project.FruDevice({'BOARD_PRODUCT_NAME': 'A2UL8RISER2', 'ADDRESS': '0x50'})"
     }
-]
+]
\ No newline at end of file
diff --git a/configurations/8X25 HSBP.json b/configurations/8X25 HSBP.json
old mode 100755
new mode 100644
diff --git a/configurations/F2U12X35S3P_riser.json b/configurations/F2U12X35S3P_riser.json
old mode 100755
new mode 100644
index e4c34f5..83fda94
--- a/configurations/F2U12X35S3P_riser.json
+++ b/configurations/F2U12X35S3P_riser.json
@@ -6,32 +6,30 @@
                 "bus": "$bus",
                 "name": "Riser1 Temp",
                 "thresholds": [
-                    [
-                        {
-                            "direction": "greater than",
-                            "name": "upper critical",
-                            "severity": 1,
-                            "value": 80
-                        },
-                        {
-                            "direction": "greater than",
-                            "name": "upper non critical",
-                            "severity": 0,
-                            "value": 75
-                        },
-                        {
-                            "direction": "less than",
-                            "name": "lower non critical",
-                            "severity": 0,
-                            "value": 5
-                        },
-                        {
-                            "direction": "less than",
-                            "name": "lower critical",
-                            "severity": 1,
-                            "value": 0
-                        }
-                    ]
+                    {
+                        "direction": "greater than",
+                        "name": "upper critical",
+                        "severity": 1,
+                        "value": 80
+                    },
+                    {
+                        "direction": "greater than",
+                        "name": "upper non critical",
+                        "severity": 0,
+                        "value": 75
+                    },
+                    {
+                        "direction": "less than",
+                        "name": "lower non critical",
+                        "severity": 0,
+                        "value": 5
+                    },
+                    {
+                        "direction": "less than",
+                        "name": "lower critical",
+                        "severity": 1,
+                        "value": 0
+                    }
                 ],
                 "type": "TMP75"
             },
@@ -52,32 +50,30 @@
                 "bus": "$bus",
                 "name": "Riser2 Temp",
                 "thresholds": [
-                    [
-                        {
-                            "direction": "greater than",
-                            "name": "upper critical",
-                            "severity": 1,
-                            "value": 80
-                        },
-                        {
-                            "direction": "greater than",
-                            "name": "upper non critical",
-                            "severity": 0,
-                            "value": 75
-                        },
-                        {
-                            "direction": "less than",
-                            "name": "lower non critical",
-                            "severity": 0,
-                            "value": 5
-                        },
-                        {
-                            "direction": "less than",
-                            "name": "lower critical",
-                            "severity": 1,
-                            "value": 0
-                        }
-                    ]
+                    {
+                        "direction": "greater than",
+                        "name": "upper critical",
+                        "severity": 1,
+                        "value": 80
+                    },
+                    {
+                        "direction": "greater than",
+                        "name": "upper non critical",
+                        "severity": 0,
+                        "value": 75
+                    },
+                    {
+                        "direction": "less than",
+                        "name": "lower non critical",
+                        "severity": 0,
+                        "value": 5
+                    },
+                    {
+                        "direction": "less than",
+                        "name": "lower critical",
+                        "severity": 1,
+                        "value": 0
+                    }
                 ],
                 "type": "TMP75"
             },
@@ -91,4 +87,4 @@
         "name": "2U12x35 Riser2",
         "probe": "xyz.openbmc_project.FruDevice({'BOARD_PRODUCT_NAME': 'A2UL16RISER\\d', 'ADDRESS' : '0x51'})"
     }
-]
+]
\ No newline at end of file
diff --git a/configurations/Intel Front Panel.json b/configurations/Intel Front Panel.json
old mode 100755
new mode 100644
index c9734c5..79e6775
--- a/configurations/Intel Front Panel.json
+++ b/configurations/Intel Front Panel.json
@@ -11,36 +11,38 @@
             "bus": "$bus",
             "name": "Front Panel Temp",
             "thresholds": [
-                [
-                    {
-                        "direction": "greater than",
-                        "name": "upper critical",
-                        "severity": 1,
-                        "value": 55
-                    },
-                    {
-                        "direction": "greater than",
-                        "name": "upper non critical",
-                        "severity": 0,
-                        "value": 50
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower non critical",
-                        "severity": 0,
-                        "value": 5
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower critical",
-                        "severity": 1,
-                        "value": 0
-                    }
-                ]
+                {
+                    "direction": "greater than",
+                    "name": "upper critical",
+                    "severity": 1,
+                    "value": 55
+                },
+                {
+                    "direction": "greater than",
+                    "name": "upper non critical",
+                    "severity": 0,
+                    "value": 50
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower non critical",
+                    "severity": 0,
+                    "value": 5
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower critical",
+                    "severity": 1,
+                    "value": 0
+                }
             ],
             "type": "TMP75"
         }
     ],
     "name": "Intel Front Panel",
-    "probe": ["xyz.openbmc_project.FruDevice({'BOARD_PRODUCT_NAME': 'FFPANEL'})", "OR", "xyz.openbmc_project.FruDevice({'BOARD_PRODUCT_NAME': 'F2USTOPANEL'})"]
-}
+    "probe": [
+        "xyz.openbmc_project.FruDevice({'BOARD_PRODUCT_NAME': 'FFPANEL'})",
+        "OR",
+        "xyz.openbmc_project.FruDevice({'BOARD_PRODUCT_NAME': 'F2USTOPANEL'})"
+    ]
+}
\ No newline at end of file
diff --git a/configurations/R1000 Chassis.json b/configurations/R1000 Chassis.json
old mode 100755
new mode 100644
index 52ff90f..23331a6
--- a/configurations/R1000 Chassis.json
+++ b/configurations/R1000 Chassis.json
@@ -2,215 +2,237 @@
     "exposes": [
         {
             "bind_connector": "1U System Fan connector 1",
-            "name": "Fan 1",
+            "name": "Fan 1a",
             "thresholds": [
-                [
-                    {
-                        "direction": "less than",
-                        "name": "lower critical",
-                        "severity": 1,
-                        "value": 1080
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower non critical",
-                        "severity": 0,
-                        "value": 1260
-                    }
-                ],
-                [
-                    {
-                        "direction": "less than",
-                        "name": "lower critical",
-                        "severity": 1,
-                        "value": 1110
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower non critical",
-                        "severity": 0,
-                        "value": 1295
-                    }
-                ]
+                {
+                    "direction": "less than",
+                    "name": "lower critical",
+                    "severity": 1,
+                    "value": 1080
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower non critical",
+                    "severity": 0,
+                    "value": 1260
+                }
+            ],
+            "type": "AspeedFan"
+        },
+        {
+            "bind_connector": "1U System Fan connector 1",
+            "name": "Fan 1b",
+            "thresholds": [
+                {
+                    "direction": "less than",
+                    "name": "lower critical",
+                    "severity": 1,
+                    "value": 1110
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower non critical",
+                    "severity": 0,
+                    "value": 1295
+                }
             ],
             "type": "AspeedFan"
         },
         {
             "bind_connector": "1U System Fan connector 2",
-            "name": "Fan 2",
+            "name": "Fan 2a",
             "thresholds": [
-                [
-                    {
-                        "direction": "less than",
-                        "name": "lower critical",
-                        "severity": 1,
-                        "value": 1080
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower non critical",
-                        "severity": 0,
-                        "value": 1260
-                    }
-                ],
-                [
-                    {
-                        "direction": "less than",
-                        "name": "lower critical",
-                        "severity": 1,
-                        "value": 1110
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower non critical",
-                        "severity": 0,
-                        "value": 1295
-                    }
-                ]
+                {
+                    "direction": "less than",
+                    "name": "lower critical",
+                    "severity": 1,
+                    "value": 1080
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower non critical",
+                    "severity": 0,
+                    "value": 1260
+                }
+            ],
+            "type": "AspeedFan"
+        },
+        {
+            "bind_connector": "1U System Fan connector 2",
+            "name": "Fan 2b",
+            "thresholds": [
+                {
+                    "direction": "less than",
+                    "name": "lower critical",
+                    "severity": 1,
+                    "value": 1110
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower non critical",
+                    "severity": 0,
+                    "value": 1295
+                }
             ],
             "type": "AspeedFan"
         },
         {
             "bind_connector": "1U System Fan connector 3",
-            "name": "Fan 3",
+            "name": "Fan 3a",
             "thresholds": [
-                [
-                    {
-                        "direction": "less than",
-                        "name": "lower critical",
-                        "severity": 1,
-                        "value": 1080
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower non critical",
-                        "severity": 0,
-                        "value": 1260
-                    }
-                ],
-                [
-                    {
-                        "direction": "less than",
-                        "name": "lower critical",
-                        "severity": 1,
-                        "value": 1110
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower non critical",
-                        "severity": 0,
-                        "value": 1295
-                    }
-                ]
+                {
+                    "direction": "less than",
+                    "name": "lower critical",
+                    "severity": 1,
+                    "value": 1080
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower non critical",
+                    "severity": 0,
+                    "value": 1260
+                }
+            ],
+            "type": "AspeedFan"
+        },
+        {
+            "bind_connector": "1U System Fan connector 3",
+            "name": "Fan 3b",
+            "thresholds": [
+                {
+                    "direction": "less than",
+                    "name": "lower critical",
+                    "severity": 1,
+                    "value": 1110
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower non critical",
+                    "severity": 0,
+                    "value": 1295
+                }
             ],
             "type": "AspeedFan"
         },
         {
             "bind_connector": "1U System Fan connector 4",
-            "name": "Fan 4",
+            "name": "Fan 4a",
             "thresholds": [
-                [
-                    {
-                        "direction": "less than",
-                        "name": "lower critical",
-                        "severity": 1,
-                        "value": 1080
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower non critical",
-                        "severity": 0,
-                        "value": 1260
-                    }
-                ],
-                [
-                    {
-                        "direction": "less than",
-                        "name": "lower critical",
-                        "severity": 1,
-                        "value": 1110
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower non critical",
-                        "severity": 0,
-                        "value": 1295
-                    }
-                ]
+                {
+                    "direction": "less than",
+                    "name": "lower critical",
+                    "severity": 1,
+                    "value": 1080
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower non critical",
+                    "severity": 0,
+                    "value": 1260
+                }
+            ],
+            "type": "AspeedFan"
+        },
+        {
+            "bind_connector": "1U System Fan connector 4",
+            "name": "Fan 4b",
+            "thresholds": [
+                {
+                    "direction": "less than",
+                    "name": "lower critical",
+                    "severity": 1,
+                    "value": 1110
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower non critical",
+                    "severity": 0,
+                    "value": 1295
+                }
             ],
             "type": "AspeedFan"
         },
         {
             "bind_connector": "1U System Fan connector 5",
-            "name": "Fan 5",
+            "name": "Fan 5a",
             "thresholds": [
-                [
-                    {
-                        "direction": "less than",
-                        "name": "lower critical",
-                        "severity": 1,
-                        "value": 1080
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower non critical",
-                        "severity": 0,
-                        "value": 1260
-                    }
-                ],
-                [
-                    {
-                        "direction": "less than",
-                        "name": "lower critical",
-                        "severity": 1,
-                        "value": 1110
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower non critical",
-                        "severity": 0,
-                        "value": 1295
-                    }
-                ]
+                {
+                    "direction": "less than",
+                    "name": "lower critical",
+                    "severity": 1,
+                    "value": 1080
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower non critical",
+                    "severity": 0,
+                    "value": 1260
+                }
+            ],
+            "type": "AspeedFan"
+        },
+        {
+            "bind_connector": "1U System Fan connector 5",
+            "name": "Fan 5b",
+            "thresholds": [
+                {
+                    "direction": "less than",
+                    "name": "lower critical",
+                    "severity": 1,
+                    "value": 1110
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower non critical",
+                    "severity": 0,
+                    "value": 1295
+                }
             ],
             "type": "AspeedFan"
         },
         {
             "bind_connector": "1U System Fan connector 6",
-            "name": "Fan 6",
+            "name": "Fan 6a",
             "thresholds": [
-                [
-                    {
-                        "direction": "less than",
-                        "name": "lower critical",
-                        "severity": 1,
-                        "value": 1080
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower non critical",
-                        "severity": 0,
-                        "value": 1260
-                    }
-                ],
-                [
-                    {
-                        "direction": "less than",
-                        "name": "lower critical",
-                        "severity": 1,
-                        "value": 1110
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower non critical",
-                        "severity": 0,
-                        "value": 1295
-                    }
-                ]
+                {
+                    "direction": "less than",
+                    "name": "lower critical",
+                    "severity": 1,
+                    "value": 1080
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower non critical",
+                    "severity": 0,
+                    "value": 1260
+                }
+            ],
+            "type": "AspeedFan"
+        },
+        {
+            "bind_connector": "1U System Fan connector 6",
+            "name": "Fan 6b",
+            "thresholds": [
+                {
+                    "direction": "less than",
+                    "name": "lower critical",
+                    "severity": 1,
+                    "value": 1110
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower non critical",
+                    "severity": 0,
+                    "value": 1295
+                }
             ],
             "type": "AspeedFan"
         }
     ],
     "name": "R1000 Chassis",
-    "probe": ["FOUND('WFP Baseboard')", "AND", "xyz.openbmc_project.FruDevice({'BOARD_PRODUCT_NAME': 'F1UL16RISER1'})"]
-}
+    "probe": [
+        "FOUND('WFP Baseboard')",
+        "AND",
+        "xyz.openbmc_project.FruDevice({'BOARD_PRODUCT_NAME': 'F1UL16RISER1'})"
+    ]
+}
\ No newline at end of file
diff --git a/configurations/R2000 Chassis.json b/configurations/R2000 Chassis.json
old mode 100755
new mode 100644
index b4c6ab0..f0dc3a2
--- a/configurations/R2000 Chassis.json
+++ b/configurations/R2000 Chassis.json
@@ -4,20 +4,18 @@
             "bind_connector": "2U System Fan connector 1",
             "name": "Fan 1",
             "thresholds": [
-                [
-                    {
-                        "direction": "less than",
-                        "name": "lower critical",
-                        "severity": 1,
-                        "value": 1750
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower non critical",
-                        "severity": 0,
-                        "value": 2000
-                    }
-                ]
+                {
+                    "direction": "less than",
+                    "name": "lower critical",
+                    "severity": 1,
+                    "value": 1750
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower non critical",
+                    "severity": 0,
+                    "value": 2000
+                }
             ],
             "type": "AspeedFan"
         },
@@ -25,20 +23,18 @@
             "bind_connector": "2U System Fan connector 2",
             "name": "Fan 2",
             "thresholds": [
-                [
-                    {
-                        "direction": "less than",
-                        "name": "lower critical",
-                        "severity": 1,
-                        "value": 1750
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower non critical",
-                        "severity": 0,
-                        "value": 2000
-                    }
-                ]
+                {
+                    "direction": "less than",
+                    "name": "lower critical",
+                    "severity": 1,
+                    "value": 1750
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower non critical",
+                    "severity": 0,
+                    "value": 2000
+                }
             ],
             "type": "AspeedFan"
         },
@@ -46,20 +42,18 @@
             "bind_connector": "2U System Fan connector 3",
             "name": "Fan 3",
             "thresholds": [
-                [
-                    {
-                        "direction": "less than",
-                        "name": "lower critical",
-                        "severity": 1,
-                        "value": 1750
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower non critical",
-                        "severity": 0,
-                        "value": 2000
-                    }
-                ]
+                {
+                    "direction": "less than",
+                    "name": "lower critical",
+                    "severity": 1,
+                    "value": 1750
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower non critical",
+                    "severity": 0,
+                    "value": 2000
+                }
             ],
             "type": "AspeedFan"
         },
@@ -67,20 +61,18 @@
             "bind_connector": "2U System Fan connector 4",
             "name": "Fan 4",
             "thresholds": [
-                [
-                    {
-                        "direction": "less than",
-                        "name": "lower critical",
-                        "severity": 1,
-                        "value": 1750
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower non critical",
-                        "severity": 0,
-                        "value": 2000
-                    }
-                ]
+                {
+                    "direction": "less than",
+                    "name": "lower critical",
+                    "severity": 1,
+                    "value": 1750
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower non critical",
+                    "severity": 0,
+                    "value": 2000
+                }
             ],
             "type": "AspeedFan"
         },
@@ -88,20 +80,18 @@
             "bind_connector": "2U System Fan connector 5",
             "name": "Fan 5",
             "thresholds": [
-                [
-                    {
-                        "direction": "less than",
-                        "name": "lower critical",
-                        "severity": 1,
-                        "value": 1750
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower non critical",
-                        "severity": 0,
-                        "value": 2000
-                    }
-                ]
+                {
+                    "direction": "less than",
+                    "name": "lower critical",
+                    "severity": 1,
+                    "value": 1750
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower non critical",
+                    "severity": 0,
+                    "value": 2000
+                }
             ],
             "type": "AspeedFan"
         },
@@ -109,24 +99,26 @@
             "bind_connector": "2U System Fan connector 6",
             "name": "Fan 6",
             "thresholds": [
-                [
-                    {
-                        "direction": "less than",
-                        "name": "lower critical",
-                        "severity": 1,
-                        "value": 1750
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower non critical",
-                        "severity": 0,
-                        "value": 2000
-                    }
-                ]
+                {
+                    "direction": "less than",
+                    "name": "lower critical",
+                    "severity": 1,
+                    "value": 1750
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower non critical",
+                    "severity": 0,
+                    "value": 2000
+                }
             ],
             "type": "AspeedFan"
         }
     ],
     "name": "R2000 Chassis",
-    "probe": ["FOUND('WFP Baseboard')", "AND", "xyz.openbmc_project.FruDevice({'BOARD_PRODUCT_NAME': 'A2UL16RISER1'})"]
-}
+    "probe": [
+        "FOUND('WFP Baseboard')",
+        "AND",
+        "xyz.openbmc_project.FruDevice({'BOARD_PRODUCT_NAME': 'A2UL16RISER1'})"
+    ]
+}
\ No newline at end of file
diff --git a/configurations/SAS Module.json b/configurations/SAS Module.json
old mode 100755
new mode 100644
index 7555799..fae43ff
--- a/configurations/SAS Module.json
+++ b/configurations/SAS Module.json
@@ -14,4 +14,4 @@
     ],
     "name": "SAS Module",
     "probe": "FALSE"
-}
+}
\ No newline at end of file
diff --git a/configurations/STP Baseboard.json b/configurations/STP Baseboard.json
old mode 100755
new mode 100644
index d0affc9..b88409d
--- a/configurations/STP Baseboard.json
+++ b/configurations/STP Baseboard.json
@@ -98,34 +98,32 @@
         {
             "address": "0x48",
             "bus": 6,
-            "name": "M dot 2 Temp",
+            "name": "M_2 Temp",
             "thresholds": [
-                [
-                    {
-                        "direction": "greater than",
-                        "name": "upper critical",
-                        "severity": 1,
-                        "value": 115
-                    },
-                    {
-                        "direction": "greater than",
-                        "name": "upper non critical",
-                        "severity": 0,
-                        "value": 110
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower non critical",
-                        "severity": 0,
-                        "value": 5
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower critical",
-                        "severity": 1,
-                        "value": 0
-                    }
-                ]
+                {
+                    "direction": "greater than",
+                    "name": "upper critical",
+                    "severity": 1,
+                    "value": 115
+                },
+                {
+                    "direction": "greater than",
+                    "name": "upper non critical",
+                    "severity": 0,
+                    "value": 110
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower non critical",
+                    "severity": 0,
+                    "value": 5
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower critical",
+                    "severity": 1,
+                    "value": 0
+                }
             ],
             "type": "TMP75"
         },
@@ -134,32 +132,30 @@
             "bus": 6,
             "name": "Memory VRM Temp",
             "thresholds": [
-                [
-                    {
-                        "direction": "greater than",
-                        "name": "upper critical",
-                        "severity": 1,
-                        "value": 115
-                    },
-                    {
-                        "direction": "greater than",
-                        "name": "upper non critical",
-                        "severity": 0,
-                        "value": 110
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower non critical",
-                        "severity": 0,
-                        "value": 5
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower critical",
-                        "severity": 1,
-                        "value": 0
-                    }
-                ]
+                {
+                    "direction": "greater than",
+                    "name": "upper critical",
+                    "severity": 1,
+                    "value": 115
+                },
+                {
+                    "direction": "greater than",
+                    "name": "upper non critical",
+                    "severity": 0,
+                    "value": 110
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower non critical",
+                    "severity": 0,
+                    "value": 5
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower critical",
+                    "severity": 1,
+                    "value": 0
+                }
             ],
             "type": "TMP75"
         },
@@ -168,32 +164,30 @@
             "bus": 6,
             "name": "LR Memory Board Temp",
             "thresholds": [
-                [
-                    {
-                        "direction": "greater than",
-                        "name": "upper critical",
-                        "severity": 1,
-                        "value": 115
-                    },
-                    {
-                        "direction": "greater than",
-                        "name": "upper non critical",
-                        "severity": 0,
-                        "value": 110
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower non critical",
-                        "severity": 0,
-                        "value": 5
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower critical",
-                        "severity": 1,
-                        "value": 0
-                    }
-                ]
+                {
+                    "direction": "greater than",
+                    "name": "upper critical",
+                    "severity": 1,
+                    "value": 115
+                },
+                {
+                    "direction": "greater than",
+                    "name": "upper non critical",
+                    "severity": 0,
+                    "value": 110
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower non critical",
+                    "severity": 0,
+                    "value": 5
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower critical",
+                    "severity": 1,
+                    "value": 0
+                }
             ],
             "type": "TMP75"
         },
@@ -203,32 +197,30 @@
             "name": "BMC Temp",
             "name1": "TMP421 Internal Temp",
             "thresholds": [
-                [
-                    {
-                        "direction": "greater than",
-                        "name": "upper critical",
-                        "severity": 1,
-                        "value": 115
-                    },
-                    {
-                        "direction": "greater than",
-                        "name": "upper non critical",
-                        "severity": 0,
-                        "value": 110
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower non critical",
-                        "severity": 0,
-                        "value": 5
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower critical",
-                        "severity": 1,
-                        "value": 0
-                    }
-                ]
+                {
+                    "direction": "greater than",
+                    "name": "upper critical",
+                    "severity": 1,
+                    "value": 115
+                },
+                {
+                    "direction": "greater than",
+                    "name": "upper non critical",
+                    "severity": 0,
+                    "value": 110
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower non critical",
+                    "severity": 0,
+                    "value": 5
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower critical",
+                    "severity": 1,
+                    "value": 0
+                }
             ],
             "type": "TMP421"
         },
@@ -237,32 +229,30 @@
             "bus": 6,
             "name": "CPU VR Temp",
             "thresholds": [
-                [
-                    {
-                        "direction": "greater than",
-                        "name": "upper critical",
-                        "severity": 1,
-                        "value": 115
-                    },
-                    {
-                        "direction": "greater than",
-                        "name": "upper non critical",
-                        "severity": 0,
-                        "value": 110
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower non critical",
-                        "severity": 0,
-                        "value": 5
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower critical",
-                        "severity": 1,
-                        "value": 0
-                    }
-                ]
+                {
+                    "direction": "greater than",
+                    "name": "upper critical",
+                    "severity": 1,
+                    "value": 115
+                },
+                {
+                    "direction": "greater than",
+                    "name": "upper non critical",
+                    "severity": 0,
+                    "value": 110
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower non critical",
+                    "severity": 0,
+                    "value": 5
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower critical",
+                    "severity": 1,
+                    "value": 0
+                }
             ],
             "type": "TMP75"
         },
@@ -271,32 +261,30 @@
             "bus": 6,
             "name": "Ambient Temp",
             "thresholds": [
-                [
-                    {
-                        "direction": "greater than",
-                        "name": "upper critical",
-                        "severity": 1,
-                        "value": 115
-                    },
-                    {
-                        "direction": "greater than",
-                        "name": "upper non critical",
-                        "severity": 0,
-                        "value": 110
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower non critical",
-                        "severity": 0,
-                        "value": 5
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower critical",
-                        "severity": 1,
-                        "value": 0
-                    }
-                ]
+                {
+                    "direction": "greater than",
+                    "name": "upper critical",
+                    "severity": 1,
+                    "value": 115
+                },
+                {
+                    "direction": "greater than",
+                    "name": "upper non critical",
+                    "severity": 0,
+                    "value": 110
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower non critical",
+                    "severity": 0,
+                    "value": 5
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower critical",
+                    "severity": 1,
+                    "value": 0
+                }
             ],
             "type": "TMP75"
         },
@@ -305,32 +293,30 @@
             "name": "PSU 12 Volt",
             "scale_factor": 0.1124,
             "thresholds": [
-                [
-                    {
-                        "direction": "greater than",
-                        "name": "upper critical",
-                        "severity": 1,
-                        "value": 13.494
-                    },
-                    {
-                        "direction": "greater than",
-                        "name": "upper non critical",
-                        "severity": 0,
-                        "value": 13.101
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower non critical",
-                        "severity": 0,
-                        "value": 10.945
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower critical",
-                        "severity": 1,
-                        "value": 10.616
-                    }
-                ]
+                {
+                    "direction": "greater than",
+                    "name": "upper critical",
+                    "severity": 1,
+                    "value": 13.494
+                },
+                {
+                    "direction": "greater than",
+                    "name": "upper non critical",
+                    "severity": 0,
+                    "value": 13.101
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower non critical",
+                    "severity": 0,
+                    "value": 10.945
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower critical",
+                    "severity": 1,
+                    "value": 10.616
+                }
             ],
             "type": "ADC"
         },
@@ -339,32 +325,30 @@
             "name": "P3V3",
             "scale_factor": 0.4107,
             "thresholds": [
-                [
-                    {
-                        "direction": "greater than",
-                        "name": "upper critical",
-                        "severity": 1,
-                        "value": 3.647
-                    },
-                    {
-                        "direction": "greater than",
-                        "name": "upper non critical",
-                        "severity": 0,
-                        "value": 3.066
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower non critical",
-                        "severity": 0,
-                        "value": 3.066
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower critical",
-                        "severity": 1,
-                        "value": 2.974
-                    }
-                ]
+                {
+                    "direction": "greater than",
+                    "name": "upper critical",
+                    "severity": 1,
+                    "value": 3.647
+                },
+                {
+                    "direction": "greater than",
+                    "name": "upper non critical",
+                    "severity": 0,
+                    "value": 3.066
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower non critical",
+                    "severity": 0,
+                    "value": 3.066
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower critical",
+                    "severity": 1,
+                    "value": 2.974
+                }
             ],
             "type": "ADC"
         },
@@ -373,32 +357,30 @@
             "name": "PVNN_PCH_AUX",
             "scale_factor": 1.0,
             "thresholds": [
-                [
-                    {
-                        "direction": "greater than",
-                        "name": "upper critical",
-                        "severity": 1,
-                        "value": 1.081
-                    },
-                    {
-                        "direction": "greater than",
-                        "name": "upper non critical",
-                        "severity": 0,
-                        "value": 1.049
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower non critical",
-                        "severity": 0,
-                        "value": 0.807
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower critical",
-                        "severity": 1,
-                        "value": 0.783
-                    }
-                ]
+                {
+                    "direction": "greater than",
+                    "name": "upper critical",
+                    "severity": 1,
+                    "value": 1.081
+                },
+                {
+                    "direction": "greater than",
+                    "name": "upper non critical",
+                    "severity": 0,
+                    "value": 1.049
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower non critical",
+                    "severity": 0,
+                    "value": 0.807
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower critical",
+                    "severity": 1,
+                    "value": 0.783
+                }
             ],
             "type": "ADC"
         },
@@ -407,32 +389,30 @@
             "name": "P1V05_PCH_AUX",
             "scale_factor": 1.0,
             "thresholds": [
-                [
-                    {
-                        "direction": "greater than",
-                        "name": "upper critical",
-                        "severity": 1,
-                        "value": 1.139
-                    },
-                    {
-                        "direction": "greater than",
-                        "name": "upper non critical",
-                        "severity": 0,
-                        "value": 1.106
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower non critical",
-                        "severity": 0,
-                        "value": 0.995
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower critical",
-                        "severity": 1,
-                        "value": 0.966
-                    }
-                ]
+                {
+                    "direction": "greater than",
+                    "name": "upper critical",
+                    "severity": 1,
+                    "value": 1.139
+                },
+                {
+                    "direction": "greater than",
+                    "name": "upper non critical",
+                    "severity": 0,
+                    "value": 1.106
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower non critical",
+                    "severity": 0,
+                    "value": 0.995
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower critical",
+                    "severity": 1,
+                    "value": 0.966
+                }
             ],
             "type": "ADC"
         },
@@ -441,32 +421,30 @@
             "name": "P0V83_LAN_AUX",
             "scale_factor": 1.0,
             "thresholds": [
-                [
-                    {
-                        "direction": "greater than",
-                        "name": "upper critical",
-                        "severity": 1,
-                        "value": 0.901
-                    },
-                    {
-                        "direction": "greater than",
-                        "name": "upper non critical",
-                        "severity": 0,
-                        "value": 0.875
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower non critical",
-                        "severity": 0,
-                        "value": 0.786
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower critical",
-                        "severity": 1,
-                        "value": 0.763
-                    }
-                ]
+                {
+                    "direction": "greater than",
+                    "name": "upper critical",
+                    "severity": 1,
+                    "value": 0.901
+                },
+                {
+                    "direction": "greater than",
+                    "name": "upper non critical",
+                    "severity": 0,
+                    "value": 0.875
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower non critical",
+                    "severity": 0,
+                    "value": 0.786
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower critical",
+                    "severity": 1,
+                    "value": 0.763
+                }
             ],
             "type": "ADC"
         },
@@ -475,32 +453,30 @@
             "name": "P5V_STBY",
             "scale_factor": 0.2717,
             "thresholds": [
-                [
-                    {
-                        "direction": "greater than",
-                        "name": "upper critical",
-                        "severity": 1,
-                        "value": 13.494
-                    },
-                    {
-                        "direction": "greater than",
-                        "name": "upper non critical",
-                        "severity": 0,
-                        "value": 13.101
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower non critical",
-                        "severity": 0,
-                        "value": 10.945
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower critical",
-                        "severity": 1,
-                        "value": 10.616
-                    }
-                ]
+                {
+                    "direction": "greater than",
+                    "name": "upper critical",
+                    "severity": 1,
+                    "value": 13.494
+                },
+                {
+                    "direction": "greater than",
+                    "name": "upper non critical",
+                    "severity": 0,
+                    "value": 13.101
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower non critical",
+                    "severity": 0,
+                    "value": 10.945
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower critical",
+                    "severity": 1,
+                    "value": 10.616
+                }
             ],
             "type": "ADC"
         },
@@ -509,32 +485,30 @@
             "name": "P1V8_PCH_AUX",
             "scale_factor": 0.7505,
             "thresholds": [
-                [
-                    {
-                        "direction": "greater than",
-                        "name": "upper critical",
-                        "severity": 1,
-                        "value": 1.961
-                    },
-                    {
-                        "direction": "greater than",
-                        "name": "upper non critical",
-                        "severity": 0,
-                        "value": 1.904
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower non critical",
-                        "severity": 0,
-                        "value": 1.699
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower critical",
-                        "severity": 1,
-                        "value": 1.648
-                    }
-                ]
+                {
+                    "direction": "greater than",
+                    "name": "upper critical",
+                    "severity": 1,
+                    "value": 1.961
+                },
+                {
+                    "direction": "greater than",
+                    "name": "upper non critical",
+                    "severity": 0,
+                    "value": 1.904
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower non critical",
+                    "severity": 0,
+                    "value": 1.699
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower critical",
+                    "severity": 1,
+                    "value": 1.648
+                }
             ],
             "type": "ADC"
         },
@@ -543,32 +517,30 @@
             "name": "P3V_BAT",
             "scale_factor": 0.3333,
             "thresholds": [
-                [
-                    {
-                        "direction": "greater than",
-                        "name": "upper critical",
-                        "severity": 1,
-                        "value": 3.296
-                    },
-                    {
-                        "direction": "greater than",
-                        "name": "upper non critical",
-                        "severity": 0,
-                        "value": 3.263
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower non critical",
-                        "severity": 0,
-                        "value": 2.457
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower critical",
-                        "severity": 1,
-                        "value": 2.138
-                    }
-                ]
+                {
+                    "direction": "greater than",
+                    "name": "upper critical",
+                    "severity": 1,
+                    "value": 3.296
+                },
+                {
+                    "direction": "greater than",
+                    "name": "upper non critical",
+                    "severity": 0,
+                    "value": 3.263
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower non critical",
+                    "severity": 0,
+                    "value": 2.457
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower critical",
+                    "severity": 1,
+                    "value": 2.138
+                }
             ],
             "type": "ADC"
         },
@@ -577,32 +549,30 @@
             "name": "PVCCIN_CPU0",
             "scale_factor": 0.7505,
             "thresholds": [
-                [
-                    {
-                        "direction": "greater than",
-                        "name": "upper critical",
-                        "severity": 1,
-                        "value": 2.151
-                    },
-                    {
-                        "direction": "greater than",
-                        "name": "upper non critical",
-                        "severity": 0,
-                        "value": 2.088
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower non critical",
-                        "severity": 0,
-                        "value": 1.418
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower critical",
-                        "severity": 1,
-                        "value": 1.376
-                    }
-                ]
+                {
+                    "direction": "greater than",
+                    "name": "upper critical",
+                    "severity": 1,
+                    "value": 2.151
+                },
+                {
+                    "direction": "greater than",
+                    "name": "upper non critical",
+                    "severity": 0,
+                    "value": 2.088
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower non critical",
+                    "severity": 0,
+                    "value": 1.418
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower critical",
+                    "severity": 1,
+                    "value": 1.376
+                }
             ],
             "type": "ADC"
         },
@@ -611,32 +581,30 @@
             "name": "PVCCIN_CPU1",
             "scale_factor": 0.7505,
             "thresholds": [
-                [
-                    {
-                        "direction": "greater than",
-                        "name": "upper critical",
-                        "severity": 1,
-                        "value": 2.151
-                    },
-                    {
-                        "direction": "greater than",
-                        "name": "upper non critical",
-                        "severity": 0,
-                        "value": 2.088
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower non critical",
-                        "severity": 0,
-                        "value": 1.418
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower critical",
-                        "severity": 1,
-                        "value": 1.376
-                    }
-                ]
+                {
+                    "direction": "greater than",
+                    "name": "upper critical",
+                    "severity": 1,
+                    "value": 2.151
+                },
+                {
+                    "direction": "greater than",
+                    "name": "upper non critical",
+                    "severity": 0,
+                    "value": 2.088
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower non critical",
+                    "severity": 0,
+                    "value": 1.418
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower critical",
+                    "severity": 1,
+                    "value": 1.376
+                }
             ],
             "type": "ADC"
         },
@@ -645,32 +613,30 @@
             "name": "PVDDQ_ABC_CPU0",
             "scale_factor": 1.0,
             "thresholds": [
-                [
-                    {
-                        "direction": "greater than",
-                        "name": "upper critical",
-                        "severity": 1,
-                        "value": 1.301
-                    },
-                    {
-                        "direction": "greater than",
-                        "name": "upper non critical",
-                        "severity": 0,
-                        "value": 1.263
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower non critical",
-                        "severity": 0,
-                        "value": 1.138
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower critical",
-                        "severity": 1,
-                        "value": 1.104
-                    }
-                ]
+                {
+                    "direction": "greater than",
+                    "name": "upper critical",
+                    "severity": 1,
+                    "value": 1.301
+                },
+                {
+                    "direction": "greater than",
+                    "name": "upper non critical",
+                    "severity": 0,
+                    "value": 1.263
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower non critical",
+                    "severity": 0,
+                    "value": 1.138
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower critical",
+                    "severity": 1,
+                    "value": 1.104
+                }
             ],
             "type": "ADC"
         },
@@ -679,32 +645,30 @@
             "name": "PVDDQ_DEF_CPU0",
             "scale_factor": 1.0,
             "thresholds": [
-                [
-                    {
-                        "direction": "greater than",
-                        "name": "upper critical",
-                        "severity": 1,
-                        "value": 1.301
-                    },
-                    {
-                        "direction": "greater than",
-                        "name": "upper non critical",
-                        "severity": 0,
-                        "value": 1.263
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower non critical",
-                        "severity": 0,
-                        "value": 1.138
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower critical",
-                        "severity": 1,
-                        "value": 1.104
-                    }
-                ]
+                {
+                    "direction": "greater than",
+                    "name": "upper critical",
+                    "severity": 1,
+                    "value": 1.301
+                },
+                {
+                    "direction": "greater than",
+                    "name": "upper non critical",
+                    "severity": 0,
+                    "value": 1.263
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower non critical",
+                    "severity": 0,
+                    "value": 1.138
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower critical",
+                    "severity": 1,
+                    "value": 1.104
+                }
             ],
             "type": "ADC"
         },
@@ -713,32 +677,30 @@
             "name": "PVDDQ_ABC_CPU1",
             "scale_factor": 1.0,
             "thresholds": [
-                [
-                    {
-                        "direction": "greater than",
-                        "name": "upper critical",
-                        "severity": 1,
-                        "value": 1.301
-                    },
-                    {
-                        "direction": "greater than",
-                        "name": "upper non critical",
-                        "severity": 0,
-                        "value": 1.263
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower non critical",
-                        "severity": 0,
-                        "value": 1.138
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower critical",
-                        "severity": 1,
-                        "value": 1.104
-                    }
-                ]
+                {
+                    "direction": "greater than",
+                    "name": "upper critical",
+                    "severity": 1,
+                    "value": 1.301
+                },
+                {
+                    "direction": "greater than",
+                    "name": "upper non critical",
+                    "severity": 0,
+                    "value": 1.263
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower non critical",
+                    "severity": 0,
+                    "value": 1.138
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower critical",
+                    "severity": 1,
+                    "value": 1.104
+                }
             ],
             "type": "ADC"
         },
@@ -747,32 +709,30 @@
             "name": "PVDDQ_DEF_CPU1",
             "scale_factor": 1.0,
             "thresholds": [
-                [
-                    {
-                        "direction": "greater than",
-                        "name": "upper critical",
-                        "severity": 1,
-                        "value": 1.301
-                    },
-                    {
-                        "direction": "greater than",
-                        "name": "upper non critical",
-                        "severity": 0,
-                        "value": 1.263
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower non critical",
-                        "severity": 0,
-                        "value": 1.138
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower critical",
-                        "severity": 1,
-                        "value": 1.104
-                    }
-                ]
+                {
+                    "direction": "greater than",
+                    "name": "upper critical",
+                    "severity": 1,
+                    "value": 1.301
+                },
+                {
+                    "direction": "greater than",
+                    "name": "upper non critical",
+                    "severity": 0,
+                    "value": 1.263
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower non critical",
+                    "severity": 0,
+                    "value": 1.138
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower critical",
+                    "severity": 1,
+                    "value": 1.104
+                }
             ],
             "type": "ADC"
         },
@@ -781,32 +741,30 @@
             "name": "PVCCIO_CPU0",
             "scale_factor": 1.0,
             "thresholds": [
-                [
-                    {
-                        "direction": "greater than",
-                        "name": "upper critical",
-                        "severity": 1,
-                        "value": 1.19
-                    },
-                    {
-                        "direction": "greater than",
-                        "name": "upper non critical",
-                        "severity": 0,
-                        "value": 1.155
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower non critical",
-                        "severity": 0,
-                        "value": 0.752
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower critical",
-                        "severity": 1,
-                        "value": 0.729
-                    }
-                ]
+                {
+                    "direction": "greater than",
+                    "name": "upper critical",
+                    "severity": 1,
+                    "value": 1.19
+                },
+                {
+                    "direction": "greater than",
+                    "name": "upper non critical",
+                    "severity": 0,
+                    "value": 1.155
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower non critical",
+                    "severity": 0,
+                    "value": 0.752
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower critical",
+                    "severity": 1,
+                    "value": 0.729
+                }
             ],
             "type": "ADC"
         },
@@ -815,32 +773,30 @@
             "name": "PVCCIO_CPU1",
             "scale_factor": 1.0,
             "thresholds": [
-                [
-                    {
-                        "direction": "greater than",
-                        "name": "upper critical",
-                        "severity": 1,
-                        "value": 1.19
-                    },
-                    {
-                        "direction": "greater than",
-                        "name": "upper non critical",
-                        "severity": 0,
-                        "value": 1.155
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower non critical",
-                        "severity": 0,
-                        "value": 0.752
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower critical",
-                        "severity": 1,
-                        "value": 0.729
-                    }
-                ]
+                {
+                    "direction": "greater than",
+                    "name": "upper critical",
+                    "severity": 1,
+                    "value": 1.19
+                },
+                {
+                    "direction": "greater than",
+                    "name": "upper non critical",
+                    "severity": 0,
+                    "value": 1.155
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower non critical",
+                    "severity": 0,
+                    "value": 0.752
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower critical",
+                    "severity": 1,
+                    "value": 0.729
+                }
             ],
             "type": "ADC"
         },
@@ -861,4 +817,4 @@
     ],
     "name": "STP Baseboard",
     "probe": "xyz.openbmc_project.FruDevice({'BOARD_PRODUCT_NAME': '.*STB'})"
-}
+}
\ No newline at end of file
diff --git a/configurations/STP P4000 Chassis.json b/configurations/STP P4000 Chassis.json
index bc462ea..cd35350 100644
--- a/configurations/STP P4000 Chassis.json
+++ b/configurations/STP P4000 Chassis.json
@@ -4,20 +4,18 @@
             "bind_connector": "4U System Fan connector 1",
             "name": "Fan 1",
             "thresholds": [
-                [
-                    {
-                        "direction": "less than",
-                        "name": "lower critical",
-                        "severity": 1,
-                        "value": 1750
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower non critical",
-                        "severity": 0,
-                        "value": 2000
-                    }
-                ]
+                {
+                    "direction": "less than",
+                    "name": "lower critical",
+                    "severity": 1,
+                    "value": 1750
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower non critical",
+                    "severity": 0,
+                    "value": 2000
+                }
             ],
             "type": "AspeedFan"
         },
@@ -25,20 +23,18 @@
             "bind_connector": "4U System Fan connector 2",
             "name": "Fan 2",
             "thresholds": [
-                [
-                    {
-                        "direction": "less than",
-                        "name": "lower critical",
-                        "severity": 1,
-                        "value": 1750
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower non critical",
-                        "severity": 0,
-                        "value": 2000
-                    }
-                ]
+                {
+                    "direction": "less than",
+                    "name": "lower critical",
+                    "severity": 1,
+                    "value": 1750
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower non critical",
+                    "severity": 0,
+                    "value": 2000
+                }
             ],
             "type": "AspeedFan"
         },
@@ -46,20 +42,18 @@
             "bind_connector": "4U System Fan connector 3",
             "name": "Fan 3",
             "thresholds": [
-                [
-                    {
-                        "direction": "less than",
-                        "name": "lower critical",
-                        "severity": 1,
-                        "value": 1750
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower non critical",
-                        "severity": 0,
-                        "value": 2000
-                    }
-                ]
+                {
+                    "direction": "less than",
+                    "name": "lower critical",
+                    "severity": 1,
+                    "value": 1750
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower non critical",
+                    "severity": 0,
+                    "value": 2000
+                }
             ],
             "type": "AspeedFan"
         },
@@ -67,20 +61,18 @@
             "bind_connector": "4U System Fan connector 4",
             "name": "Fan 4",
             "thresholds": [
-                [
-                    {
-                        "direction": "less than",
-                        "name": "lower critical",
-                        "severity": 1,
-                        "value": 1750
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower non critical",
-                        "severity": 0,
-                        "value": 2000
-                    }
-                ]
+                {
+                    "direction": "less than",
+                    "name": "lower critical",
+                    "severity": 1,
+                    "value": 1750
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower non critical",
+                    "severity": 0,
+                    "value": 2000
+                }
             ],
             "type": "AspeedFan"
         },
@@ -88,20 +80,18 @@
             "bind_connector": "4U System Fan connector 5",
             "name": "Fan 5",
             "thresholds": [
-                [
-                    {
-                        "direction": "less than",
-                        "name": "lower critical",
-                        "severity": 1,
-                        "value": 1750
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower non critical",
-                        "severity": 0,
-                        "value": 2000
-                    }
-                ]
+                {
+                    "direction": "less than",
+                    "name": "lower critical",
+                    "severity": 1,
+                    "value": 1750
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower non critical",
+                    "severity": 0,
+                    "value": 2000
+                }
             ],
             "type": "AspeedFan"
         },
@@ -109,24 +99,26 @@
             "bind_connector": "4U System Fan connector 6",
             "name": "Fan 6",
             "thresholds": [
-                [
-                    {
-                        "direction": "less than",
-                        "name": "lower critical",
-                        "severity": 1,
-                        "value": 1750
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower non critical",
-                        "severity": 0,
-                        "value": 2000
-                    }
-                ]
+                {
+                    "direction": "less than",
+                    "name": "lower critical",
+                    "severity": 1,
+                    "value": 1750
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower non critical",
+                    "severity": 0,
+                    "value": 2000
+                }
             ],
             "type": "AspeedFan"
         }
     ],
     "name": "P4000 Chassis",
-    "probe": ["FOUND('STP Baseboard')", "AND", "xyz.openbmc_project.FruDevice({'BOARD_PRODUCT_NAME': 'FFPANEL'})"]
-}
+    "probe": [
+        "FOUND('STP Baseboard')",
+        "AND",
+        "xyz.openbmc_project.FruDevice({'BOARD_PRODUCT_NAME': 'FFPANEL'})"
+    ]
+}
\ No newline at end of file
diff --git a/configurations/WFT Baseboard.json b/configurations/WFT Baseboard.json
old mode 100755
new mode 100644
index d69ebd7..a2fba07
--- a/configurations/WFT Baseboard.json
+++ b/configurations/WFT Baseboard.json
@@ -1,4 +1,8 @@
 {
+    "manufacturer": "$BOARD_MANUFACTURER",
+    "model": "$BOARD_PRODUCT_NAME",
+    "part_number": "$CHASSIS_PART_NUMBER",
+    "serial_number": "$CHASSIS_SERIAL_NUMBER",
     "exposes": [
         {
             "name": "1U System Fan connector 1",
@@ -119,32 +123,30 @@
             "bus": 6,
             "name": "BMC Temp",
             "thresholds": [
-                [
-                    {
-                        "direction": "greater than",
-                        "name": "upper critical",
-                        "severity": 1,
-                        "value": 115
-                    },
-                    {
-                        "direction": "greater than",
-                        "name": "upper non critical",
-                        "severity": 0,
-                        "value": 110
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower non critical",
-                        "severity": 0,
-                        "value": 5
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower critical",
-                        "severity": 1,
-                        "value": 0
-                    }
-                ]
+                {
+                    "direction": "greater than",
+                    "name": "upper critical",
+                    "severity": 1,
+                    "value": 115
+                },
+                {
+                    "direction": "greater than",
+                    "name": "upper non critical",
+                    "severity": 0,
+                    "value": 110
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower non critical",
+                    "severity": 0,
+                    "value": 5
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower critical",
+                    "severity": 1,
+                    "value": 0
+                }
             ],
             "type": "TMP75"
         },
@@ -153,32 +155,30 @@
             "name": "Baseboard 12 Volt",
             "scale_factor": 0.1124,
             "thresholds": [
-                [
-                    {
-                        "direction": "greater than",
-                        "name": "upper critical",
-                        "severity": 1,
-                        "value": 13.494
-                    },
-                    {
-                        "direction": "greater than",
-                        "name": "upper non critical",
-                        "severity": 0,
-                        "value": 13.101
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower non critical",
-                        "severity": 0,
-                        "value": 10.945
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower critical",
-                        "severity": 1,
-                        "value": 10.616
-                    }
-                ]
+                {
+                    "direction": "greater than",
+                    "name": "upper critical",
+                    "severity": 1,
+                    "value": 13.494
+                },
+                {
+                    "direction": "greater than",
+                    "name": "upper non critical",
+                    "severity": 0,
+                    "value": 13.101
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower non critical",
+                    "severity": 0,
+                    "value": 10.945
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower critical",
+                    "severity": 1,
+                    "value": 10.616
+                }
             ],
             "type": "ADC"
         },
@@ -205,32 +205,30 @@
             "bus": 6,
             "name": "Left Rear Temp",
             "thresholds": [
-                [
-                    {
-                        "direction": "greater than",
-                        "name": "upper critical",
-                        "severity": 1,
-                        "value": 115
-                    },
-                    {
-                        "direction": "greater than",
-                        "name": "upper non critical",
-                        "severity": 0,
-                        "value": 110
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower non critical",
-                        "severity": 0,
-                        "value": 5
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower critical",
-                        "severity": 1,
-                        "value": 0
-                    }
-                ]
+                {
+                    "direction": "greater than",
+                    "name": "upper critical",
+                    "severity": 1,
+                    "value": 115
+                },
+                {
+                    "direction": "greater than",
+                    "name": "upper non critical",
+                    "severity": 0,
+                    "value": 110
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower non critical",
+                    "severity": 0,
+                    "value": 5
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower critical",
+                    "severity": 1,
+                    "value": 0
+                }
             ],
             "type": "TMP75"
         },
@@ -238,32 +236,30 @@
             "index": 4,
             "name": "P0V83_LAN_AUX",
             "thresholds": [
-                [
-                    {
-                        "direction": "greater than",
-                        "name": "upper critical",
-                        "severity": 1,
-                        "value": 0.901
-                    },
-                    {
-                        "direction": "greater than",
-                        "name": "upper non critical",
-                        "severity": 0,
-                        "value": 0.875
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower non critical",
-                        "severity": 0,
-                        "value": 0.786
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower critical",
-                        "severity": 1,
-                        "value": 0.763
-                    }
-                ]
+                {
+                    "direction": "greater than",
+                    "name": "upper critical",
+                    "severity": 1,
+                    "value": 0.901
+                },
+                {
+                    "direction": "greater than",
+                    "name": "upper non critical",
+                    "severity": 0,
+                    "value": 0.875
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower non critical",
+                    "severity": 0,
+                    "value": 0.786
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower critical",
+                    "severity": 1,
+                    "value": 0.763
+                }
             ],
             "type": "ADC"
         },
@@ -271,32 +267,30 @@
             "index": 3,
             "name": "P105_PCH_AUX",
             "thresholds": [
-                [
-                    {
-                        "direction": "greater than",
-                        "name": "upper critical",
-                        "severity": 1,
-                        "value": 1.139
-                    },
-                    {
-                        "direction": "greater than",
-                        "name": "upper non critical",
-                        "severity": 0,
-                        "value": 1.106
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower non critical",
-                        "severity": 0,
-                        "value": 0.995
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower critical",
-                        "severity": 1,
-                        "value": 0.966
-                    }
-                ]
+                {
+                    "direction": "greater than",
+                    "name": "upper critical",
+                    "severity": 1,
+                    "value": 1.139
+                },
+                {
+                    "direction": "greater than",
+                    "name": "upper non critical",
+                    "severity": 0,
+                    "value": 1.106
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower non critical",
+                    "severity": 0,
+                    "value": 0.995
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower critical",
+                    "severity": 1,
+                    "value": 0.966
+                }
             ],
             "type": "ADC"
         },
@@ -305,32 +299,30 @@
             "name": "P12V_AUX",
             "scale_factor": 0.2717,
             "thresholds": [
-                [
-                    {
-                        "direction": "greater than",
-                        "name": "upper critical",
-                        "severity": 1,
-                        "value": 13.494
-                    },
-                    {
-                        "direction": "greater than",
-                        "name": "upper non critical",
-                        "severity": 0,
-                        "value": 13.101
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower non critical",
-                        "severity": 0,
-                        "value": 10.945
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower critical",
-                        "severity": 1,
-                        "value": 10.616
-                    }
-                ]
+                {
+                    "direction": "greater than",
+                    "name": "upper critical",
+                    "severity": 1,
+                    "value": 13.494
+                },
+                {
+                    "direction": "greater than",
+                    "name": "upper non critical",
+                    "severity": 0,
+                    "value": 13.101
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower non critical",
+                    "severity": 0,
+                    "value": 10.945
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower critical",
+                    "severity": 1,
+                    "value": 10.616
+                }
             ],
             "type": "ADC"
         },
@@ -339,32 +331,30 @@
             "name": "P1V8_PCH",
             "scale_factor": 0.7505,
             "thresholds": [
-                [
-                    {
-                        "direction": "greater than",
-                        "name": "upper critical",
-                        "severity": 1,
-                        "value": 1.961
-                    },
-                    {
-                        "direction": "greater than",
-                        "name": "upper non critical",
-                        "severity": 0,
-                        "value": 1.904
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower non critical",
-                        "severity": 0,
-                        "value": 1.699
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower critical",
-                        "severity": 1,
-                        "value": 1.648
-                    }
-                ]
+                {
+                    "direction": "greater than",
+                    "name": "upper critical",
+                    "severity": 1,
+                    "value": 1.961
+                },
+                {
+                    "direction": "greater than",
+                    "name": "upper non critical",
+                    "severity": 0,
+                    "value": 1.904
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower non critical",
+                    "severity": 0,
+                    "value": 1.699
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower critical",
+                    "severity": 1,
+                    "value": 1.648
+                }
             ],
             "type": "ADC"
         },
@@ -373,32 +363,30 @@
             "name": "P3V3",
             "scale_factor": 0.4107,
             "thresholds": [
-                [
-                    {
-                        "direction": "greater than",
-                        "name": "upper critical",
-                        "severity": 1,
-                        "value": 3.647
-                    },
-                    {
-                        "direction": "greater than",
-                        "name": "upper non critical",
-                        "severity": 0,
-                        "value": 3.066
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower non critical",
-                        "severity": 0,
-                        "value": 3.066
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower critical",
-                        "severity": 1,
-                        "value": 2.974
-                    }
-                ]
+                {
+                    "direction": "greater than",
+                    "name": "upper critical",
+                    "severity": 1,
+                    "value": 3.647
+                },
+                {
+                    "direction": "greater than",
+                    "name": "upper non critical",
+                    "severity": 0,
+                    "value": 3.066
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower non critical",
+                    "severity": 0,
+                    "value": 3.066
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower critical",
+                    "severity": 1,
+                    "value": 2.974
+                }
             ],
             "type": "ADC"
         },
@@ -407,32 +395,30 @@
             "name": "P3VBAT",
             "scale_factor": 0.3333,
             "thresholds": [
-                [
-                    {
-                        "direction": "greater than",
-                        "name": "upper critical",
-                        "severity": 1,
-                        "value": 3.296
-                    },
-                    {
-                        "direction": "greater than",
-                        "name": "upper non critical",
-                        "severity": 0,
-                        "value": 3.263
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower non critical",
-                        "severity": 0,
-                        "value": 2.457
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower critical",
-                        "severity": 1,
-                        "value": 2.138
-                    }
-                ]
+                {
+                    "direction": "greater than",
+                    "name": "upper critical",
+                    "severity": 1,
+                    "value": 3.296
+                },
+                {
+                    "direction": "greater than",
+                    "name": "upper non critical",
+                    "severity": 0,
+                    "value": 3.263
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower non critical",
+                    "severity": 0,
+                    "value": 2.457
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower critical",
+                    "severity": 1,
+                    "value": 2.138
+                }
             ],
             "type": "ADC"
         },
@@ -441,32 +427,30 @@
             "name": "PVCCIN_CPU0",
             "scale_factor": 0.7505,
             "thresholds": [
-                [
-                    {
-                        "direction": "greater than",
-                        "name": "upper critical",
-                        "severity": 1,
-                        "value": 2.151
-                    },
-                    {
-                        "direction": "greater than",
-                        "name": "upper non critical",
-                        "severity": 0,
-                        "value": 2.088
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower non critical",
-                        "severity": 0,
-                        "value": 1.418
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower critical",
-                        "severity": 1,
-                        "value": 1.376
-                    }
-                ]
+                {
+                    "direction": "greater than",
+                    "name": "upper critical",
+                    "severity": 1,
+                    "value": 2.151
+                },
+                {
+                    "direction": "greater than",
+                    "name": "upper non critical",
+                    "severity": 0,
+                    "value": 2.088
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower non critical",
+                    "severity": 0,
+                    "value": 1.418
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower critical",
+                    "severity": 1,
+                    "value": 1.376
+                }
             ],
             "type": "ADC"
         },
@@ -474,32 +458,30 @@
             "index": 9,
             "name": "PVCCIN_CPU1",
             "thresholds": [
-                [
-                    {
-                        "direction": "greater than",
-                        "name": "upper critical",
-                        "severity": 1,
-                        "value": 2.151
-                    },
-                    {
-                        "direction": "greater than",
-                        "name": "upper non critical",
-                        "severity": 0,
-                        "value": 2.088
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower non critical",
-                        "severity": 0,
-                        "value": 1.418
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower critical",
-                        "severity": 1,
-                        "value": 1.376
-                    }
-                ]
+                {
+                    "direction": "greater than",
+                    "name": "upper critical",
+                    "severity": 1,
+                    "value": 2.151
+                },
+                {
+                    "direction": "greater than",
+                    "name": "upper non critical",
+                    "severity": 0,
+                    "value": 2.088
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower non critical",
+                    "severity": 0,
+                    "value": 1.418
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower critical",
+                    "severity": 1,
+                    "value": 1.376
+                }
             ],
             "type": "ADC"
         },
@@ -507,32 +489,30 @@
             "index": 14,
             "name": "PVCCIO_CPU0",
             "thresholds": [
-                [
-                    {
-                        "direction": "greater than",
-                        "name": "upper critical",
-                        "severity": 1,
-                        "value": 1.19
-                    },
-                    {
-                        "direction": "greater than",
-                        "name": "upper non critical",
-                        "severity": 0,
-                        "value": 1.155
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower non critical",
-                        "severity": 0,
-                        "value": 0.752
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower critical",
-                        "severity": 1,
-                        "value": 0.729
-                    }
-                ]
+                {
+                    "direction": "greater than",
+                    "name": "upper critical",
+                    "severity": 1,
+                    "value": 1.19
+                },
+                {
+                    "direction": "greater than",
+                    "name": "upper non critical",
+                    "severity": 0,
+                    "value": 1.155
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower non critical",
+                    "severity": 0,
+                    "value": 0.752
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower critical",
+                    "severity": 1,
+                    "value": 0.729
+                }
             ],
             "type": "ADC"
         },
@@ -540,32 +520,30 @@
             "index": 15,
             "name": "PVCCIO_CPU1",
             "thresholds": [
-                [
-                    {
-                        "direction": "greater than",
-                        "name": "upper critical",
-                        "severity": 1,
-                        "value": 1.19
-                    },
-                    {
-                        "direction": "greater than",
-                        "name": "upper non critical",
-                        "severity": 0,
-                        "value": 1.155
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower non critical",
-                        "severity": 0,
-                        "value": 0.752
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower critical",
-                        "severity": 1,
-                        "value": 0.729
-                    }
-                ]
+                {
+                    "direction": "greater than",
+                    "name": "upper critical",
+                    "severity": 1,
+                    "value": 1.19
+                },
+                {
+                    "direction": "greater than",
+                    "name": "upper non critical",
+                    "severity": 0,
+                    "value": 1.155
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower non critical",
+                    "severity": 0,
+                    "value": 0.752
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower critical",
+                    "severity": 1,
+                    "value": 0.729
+                }
             ],
             "type": "ADC"
         },
@@ -573,32 +551,30 @@
             "index": 10,
             "name": "PVDQ_ABC_CPU0",
             "thresholds": [
-                [
-                    {
-                        "direction": "greater than",
-                        "name": "upper critical",
-                        "severity": 1,
-                        "value": 1.301
-                    },
-                    {
-                        "direction": "greater than",
-                        "name": "upper non critical",
-                        "severity": 0,
-                        "value": 1.263
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower non critical",
-                        "severity": 0,
-                        "value": 1.138
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower critical",
-                        "severity": 1,
-                        "value": 1.104
-                    }
-                ]
+                {
+                    "direction": "greater than",
+                    "name": "upper critical",
+                    "severity": 1,
+                    "value": 1.301
+                },
+                {
+                    "direction": "greater than",
+                    "name": "upper non critical",
+                    "severity": 0,
+                    "value": 1.263
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower non critical",
+                    "severity": 0,
+                    "value": 1.138
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower critical",
+                    "severity": 1,
+                    "value": 1.104
+                }
             ],
             "type": "ADC"
         },
@@ -606,32 +582,30 @@
             "index": 12,
             "name": "PVDQ_ABC_CPU1",
             "thresholds": [
-                [
-                    {
-                        "direction": "greater than",
-                        "name": "upper critical",
-                        "severity": 1,
-                        "value": 1.301
-                    },
-                    {
-                        "direction": "greater than",
-                        "name": "upper non critical",
-                        "severity": 0,
-                        "value": 1.263
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower non critical",
-                        "severity": 0,
-                        "value": 1.138
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower critical",
-                        "severity": 1,
-                        "value": 1.104
-                    }
-                ]
+                {
+                    "direction": "greater than",
+                    "name": "upper critical",
+                    "severity": 1,
+                    "value": 1.301
+                },
+                {
+                    "direction": "greater than",
+                    "name": "upper non critical",
+                    "severity": 0,
+                    "value": 1.263
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower non critical",
+                    "severity": 0,
+                    "value": 1.138
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower critical",
+                    "severity": 1,
+                    "value": 1.104
+                }
             ],
             "type": "ADC"
         },
@@ -639,32 +613,30 @@
             "index": 11,
             "name": "PVDQ_DEF_CPU0",
             "thresholds": [
-                [
-                    {
-                        "direction": "greater than",
-                        "name": "upper critical",
-                        "severity": 1,
-                        "value": 1.301
-                    },
-                    {
-                        "direction": "greater than",
-                        "name": "upper non critical",
-                        "severity": 0,
-                        "value": 1.263
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower non critical",
-                        "severity": 0,
-                        "value": 1.138
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower critical",
-                        "severity": 1,
-                        "value": 1.104
-                    }
-                ]
+                {
+                    "direction": "greater than",
+                    "name": "upper critical",
+                    "severity": 1,
+                    "value": 1.301
+                },
+                {
+                    "direction": "greater than",
+                    "name": "upper non critical",
+                    "severity": 0,
+                    "value": 1.263
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower non critical",
+                    "severity": 0,
+                    "value": 1.138
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower critical",
+                    "severity": 1,
+                    "value": 1.104
+                }
             ],
             "type": "ADC"
         },
@@ -672,32 +644,30 @@
             "index": 13,
             "name": "PVDQ_DEF_CPU1",
             "thresholds": [
-                [
-                    {
-                        "direction": "greater than",
-                        "name": "upper critical",
-                        "severity": 1,
-                        "value": 1.301
-                    },
-                    {
-                        "direction": "greater than",
-                        "name": "upper non critical",
-                        "severity": 0,
-                        "value": 1.263
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower non critical",
-                        "severity": 0,
-                        "value": 1.138
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower critical",
-                        "severity": 1,
-                        "value": 1.104
-                    }
-                ]
+                {
+                    "direction": "greater than",
+                    "name": "upper critical",
+                    "severity": 1,
+                    "value": 1.301
+                },
+                {
+                    "direction": "greater than",
+                    "name": "upper non critical",
+                    "severity": 0,
+                    "value": 1.263
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower non critical",
+                    "severity": 0,
+                    "value": 1.138
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower critical",
+                    "severity": 1,
+                    "value": 1.104
+                }
             ],
             "type": "ADC"
         },
@@ -705,32 +675,30 @@
             "index": 2,
             "name": "PVNN_PCH_AUX",
             "thresholds": [
-                [
-                    {
-                        "direction": "greater than",
-                        "name": "upper critical",
-                        "severity": 1,
-                        "value": 1.081
-                    },
-                    {
-                        "direction": "greater than",
-                        "name": "upper non critical",
-                        "severity": 0,
-                        "value": 1.049
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower non critical",
-                        "severity": 0,
-                        "value": 0.807
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower critical",
-                        "severity": 1,
-                        "value": 0.783
-                    }
-                ]
+                {
+                    "direction": "greater than",
+                    "name": "upper critical",
+                    "severity": 1,
+                    "value": 1.081
+                },
+                {
+                    "direction": "greater than",
+                    "name": "upper non critical",
+                    "severity": 0,
+                    "value": 1.049
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower non critical",
+                    "severity": 0,
+                    "value": 0.807
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower critical",
+                    "severity": 1,
+                    "value": 0.783
+                }
             ],
             "type": "ADC"
         },
@@ -740,32 +708,30 @@
             "name": "Right Rear Board Temp",
             "name1": "Right Rear TMP421 Internal Temp",
             "thresholds": [
-                [
-                    {
-                        "direction": "greater than",
-                        "name": "upper critical",
-                        "severity": 1,
-                        "value": 115
-                    },
-                    {
-                        "direction": "greater than",
-                        "name": "upper non critical",
-                        "severity": 0,
-                        "value": 110
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower non critical",
-                        "severity": 0,
-                        "value": 5
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower critical",
-                        "severity": 1,
-                        "value": 0
-                    }
-                ]
+                {
+                    "direction": "greater than",
+                    "name": "upper critical",
+                    "severity": 1,
+                    "value": 115
+                },
+                {
+                    "direction": "greater than",
+                    "name": "upper non critical",
+                    "severity": 0,
+                    "value": 110
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower non critical",
+                    "severity": 0,
+                    "value": 5
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower critical",
+                    "severity": 1,
+                    "value": 0
+                }
             ],
             "type": "TMP421"
         },
@@ -774,32 +740,30 @@
             "bus": 6,
             "name": "Voltage Regulator 1 Temp",
             "thresholds": [
-                [
-                    {
-                        "direction": "greater than",
-                        "name": "upper critical",
-                        "severity": 1,
-                        "value": 115
-                    },
-                    {
-                        "direction": "greater than",
-                        "name": "upper non critical",
-                        "severity": 0,
-                        "value": 110
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower non critical",
-                        "severity": 0,
-                        "value": 5
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower critical",
-                        "severity": 1,
-                        "value": 0
-                    }
-                ]
+                {
+                    "direction": "greater than",
+                    "name": "upper critical",
+                    "severity": 1,
+                    "value": 115
+                },
+                {
+                    "direction": "greater than",
+                    "name": "upper non critical",
+                    "severity": 0,
+                    "value": 110
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower non critical",
+                    "severity": 0,
+                    "value": 5
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower critical",
+                    "severity": 1,
+                    "value": 0
+                }
             ],
             "type": "TMP75"
         },
@@ -808,32 +772,30 @@
             "bus": 6,
             "name": "Voltage Regulator 2 Temp",
             "thresholds": [
-                [
-                    {
-                        "direction": "greater than",
-                        "name": "upper critical",
-                        "severity": 1,
-                        "value": 115
-                    },
-                    {
-                        "direction": "greater than",
-                        "name": "upper non critical",
-                        "severity": 0,
-                        "value": 110
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower non critical",
-                        "severity": 0,
-                        "value": 5
-                    },
-                    {
-                        "direction": "less than",
-                        "name": "lower critical",
-                        "severity": 1,
-                        "value": 0
-                    }
-                ]
+                {
+                    "direction": "greater than",
+                    "name": "upper critical",
+                    "severity": 1,
+                    "value": 115
+                },
+                {
+                    "direction": "greater than",
+                    "name": "upper non critical",
+                    "severity": 0,
+                    "value": 110
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower non critical",
+                    "severity": 0,
+                    "value": 5
+                },
+                {
+                    "direction": "less than",
+                    "name": "lower critical",
+                    "severity": 1,
+                    "value": 0
+                }
             ],
             "type": "TMP75"
         },
diff --git a/src/EntityManager.cpp b/src/EntityManager.cpp
index e247db7..b27b7f2 100644
--- a/src/EntityManager.cpp
+++ b/src/EntityManager.cpp
@@ -25,12 +25,14 @@
 #include <boost/lexical_cast.hpp>
 #include <boost/container/flat_map.hpp>
 #include <boost/container/flat_set.hpp>
+#include <dbus/connection.hpp>
 #include <VariantVisitors.hpp>
 #include <experimental/filesystem>
 
 constexpr const char *OUTPUT_DIR = "/var/configuration/";
 constexpr const char *CONFIGURATION_DIR = "/usr/share/configurations";
 constexpr const char *TEMPLATE_CHAR = "$";
+constexpr const size_t PROPERTIES_CHANGED_UNTIL_FLUSH = 20;
 constexpr const size_t MAX_MAPPER_DEPTH = 99;
 
 namespace fs = std::experimental::filesystem;
@@ -77,6 +79,8 @@
 // todo: pass this through nicer
 std::shared_ptr<dbus::connection> SYSTEM_BUS;
 
+std::regex ILLEGAL_DBUS_REGEX("[^A-Za-z0-9_]");
+
 // calls the mapper to find all exposed objects of an interface type
 // and creates a vector<flat_map> that contains all the key value pairs
 // getManagedObjects
@@ -375,6 +379,256 @@
     return ret;
 }
 
+// this function is temporary, no need to have once dbus is solified.
+void writeJsonFiles(nlohmann::json &systemConfiguration)
+{
+    std::experimental::filesystem::create_directory(OUTPUT_DIR);
+    std::ofstream output(std::string(OUTPUT_DIR) + "system.json");
+    output << systemConfiguration.dump(4);
+    output.close();
+
+    auto flat = nlohmann::json::array();
+    for (auto &pair : nlohmann::json::iterator_wrapper(systemConfiguration))
+    {
+        auto value = pair.value();
+        auto exposes = value.find("exposes");
+        if (exposes != value.end())
+        {
+            for (auto &item : *exposes)
+            {
+                flat.push_back(item);
+            }
+        }
+    }
+    output = std::ofstream(std::string(OUTPUT_DIR) + "flattened.json");
+    output << flat.dump(4);
+    output.close();
+}
+// adds simple json types to interface's properties
+void populateInterfaceFromJson(dbus::DbusInterface *iface, nlohmann::json dict,
+                               dbus::DbusObjectServer &objServer)
+{
+    std::vector<std::pair<std::string, dbus::dbus_variant>> properties;
+    static size_t flushCount = 0;
+
+    for (auto &dictPair : nlohmann::json::iterator_wrapper(dict))
+    {
+        switch (dictPair.value().type())
+        {
+        case (nlohmann::json::value_t::boolean):
+        {
+            properties.emplace_back(std::string(dictPair.key()),
+                                    dictPair.value().get<bool>());
+            break;
+        }
+        case (nlohmann::json::value_t::number_integer):
+        {
+            properties.emplace_back(std::string(dictPair.key()),
+                                    dictPair.value().get<int64_t>());
+            break;
+        }
+        case (nlohmann::json::value_t::number_unsigned):
+        {
+            properties.emplace_back(std::string(dictPair.key()),
+                                    dictPair.value().get<uint64_t>());
+            break;
+        }
+        case (nlohmann::json::value_t::number_float):
+        {
+            properties.emplace_back(std::string(dictPair.key()),
+                                    dictPair.value().get<float>());
+            break;
+        }
+        case (nlohmann::json::value_t::string):
+        {
+            properties.emplace_back(std::string(dictPair.key()),
+                                    dictPair.value().get<std::string>());
+            break;
+        }
+        }
+    }
+    if (!properties.empty())
+    {
+        iface->set_properties(properties);
+
+        // flush the queue after adding an amount of properties so we don't hang
+        if (flushCount++ > PROPERTIES_CHANGED_UNTIL_FLUSH)
+        {
+            objServer.flush();
+            flushCount = 0;
+        }
+    }
+}
+
+void postToDbus(const nlohmann::json &systemConfiguration,
+                dbus::DbusObjectServer &objServer,
+                std::vector<std::shared_ptr<dbus::DbusObject>> &objects)
+{
+    for (auto &boardPair :
+         nlohmann::json::iterator_wrapper(systemConfiguration))
+    {
+        std::string boardKey = boardPair.key();
+        auto boardValues = boardPair.value();
+        auto findBoardType = boardValues.find("type");
+        std::string boardType;
+        if (findBoardType != boardValues.end() &&
+            findBoardType->type() == nlohmann::json::value_t::string)
+        {
+            boardType = findBoardType->get<std::string>();
+            std::regex_replace(boardType.begin(), boardType.begin(),
+                               boardType.end(), ILLEGAL_DBUS_REGEX, "_");
+        }
+        else
+        {
+            std::cerr << "Unable to find type for " << boardKey
+                      << " reverting to Chassis.\n";
+            boardType = "Chassis";
+        }
+
+        std::regex_replace(boardKey.begin(), boardKey.begin(), boardKey.end(),
+                           ILLEGAL_DBUS_REGEX, "_");
+        std::string boardName =
+            "/xyz/openbmc_project/Inventory/Item/" + boardType + "/" + boardKey;
+        auto boardObject = objServer.add_object(boardName);
+
+        auto boardIface = boardObject->add_interface(
+            "xyz.openbmc_project.Configuration." + boardType);
+        populateInterfaceFromJson(boardIface.get(), boardValues, objServer);
+        auto exposes = boardValues.find("exposes");
+        if (exposes == boardValues.end())
+        {
+            continue;
+        }
+        for (auto &item : *exposes)
+        {
+            auto findName = item.find("name");
+            if (findName == item.end())
+            {
+                std::cerr << "cannot find name in field " << item << "\n";
+                continue;
+            }
+            auto findStatus = item.find("status");
+            // if status is not found it is assumed to be status = 'okay'
+            if (findStatus != item.end())
+            {
+                if (*findStatus == "disabled")
+                {
+                    continue;
+                }
+            }
+            auto findType = item.find("type");
+            std::string itemType;
+            if (findType != item.end())
+            {
+                itemType = findType->get<std::string>();
+                std::regex_replace(itemType.begin(), itemType.begin(),
+                                   itemType.end(), ILLEGAL_DBUS_REGEX, "_");
+            }
+            else
+            {
+                itemType = "unknown";
+            }
+            std::string itemName = findName->get<std::string>();
+            std::regex_replace(itemName.begin(), itemName.begin(),
+                               itemName.end(), ILLEGAL_DBUS_REGEX, "_");
+            auto itemObject = objServer.add_object(boardName + "/" + itemName);
+            auto itemIface = itemObject->add_interface(
+                "xyz.openbmc_project.Configuration." + itemType);
+
+            populateInterfaceFromJson(itemIface.get(), item, objServer);
+
+            for (auto &objectPair : nlohmann::json::iterator_wrapper(item))
+            {
+                if (objectPair.value().type() ==
+                    nlohmann::json::value_t::object)
+                {
+                    auto objectIface = itemObject->add_interface(
+                        "xyz.openbmc_project.Configuration." + itemType + "." +
+                        objectPair.key());
+                    populateInterfaceFromJson(objectIface.get(),
+                                              objectPair.value(), objServer);
+                }
+                else if (objectPair.value().type() ==
+                         nlohmann::json::value_t::array)
+                {
+                    size_t index = 0;
+                    for (auto &arrayItem : objectPair.value())
+                    {
+                        if (arrayItem.type() != nlohmann::json::value_t::object)
+                        {
+                            std::cerr << "dbus format error" << arrayItem
+                                      << "\n";
+                            break;
+                        }
+                        auto objectIface = itemObject->add_interface(
+                            "xyz.openbmc_project.Configuration." + itemType +
+                            "." + objectPair.key() + "." +
+                            std::to_string(index));
+                        index++;
+                        populateInterfaceFromJson(objectIface.get(), arrayItem,
+                                                  objServer);
+                    }
+                }
+            }
+        }
+    }
+}
+
+// finds the template character (currently set to $) and replaces the value with
+// the field found in a dbus object i.e. $ADDRESS would get populated with the
+// ADDRESS field from a object on dbus
+void templateCharReplace(
+    nlohmann::json::iterator &keyPair,
+    const boost::container::flat_map<std::string, dbus::dbus_variant>
+        &foundDevice,
+    size_t &foundDeviceIdx)
+{
+    if (keyPair.value().type() != nlohmann::json::value_t::string)
+    {
+        return;
+    }
+
+    std::string value = keyPair.value();
+    if (value.find(TEMPLATE_CHAR) != std::string::npos)
+    {
+        std::string templateValue = value;
+
+        templateValue.erase(0, 1); // remove template character
+
+        // special case index
+        if ("index" == templateValue)
+        {
+            keyPair.value() = foundDeviceIdx;
+        }
+        else
+        {
+            std::string subsitute;
+            for (auto &foundDevicePair : foundDevice)
+            {
+                if (boost::iequals(foundDevicePair.first, templateValue))
+                {
+                    // convert value to string
+                    // respresentation
+                    subsitute = boost::apply_visitor(
+                        [](const auto &x) {
+                            return boost::lexical_cast<std::string>(x);
+                        },
+                        foundDevicePair.second);
+                    break;
+                }
+            }
+            if (!subsitute.size())
+            {
+                std::cerr << "could not find symbol " << templateValue << "\n";
+            }
+            else
+            {
+                keyPair.value() = subsitute;
+            }
+        }
+    }
+}
+
 int main(int argc, char **argv)
 {
     // find configuration files
@@ -429,25 +683,18 @@
         for (auto it = configurations.begin(); it != configurations.end();)
         {
             bool eraseConfig = false;
-            auto findProbe = (*it).find("probe");
-            auto findName = (*it).find("name");
+            auto findProbe = it->find("probe");
+            auto findName = it->find("name");
 
-            // check for poorly formatted fields
-            if (findProbe == (*it).end())
+            nlohmann::json probeCommand;
+            // check for poorly formatted fields, probe must be an array
+            if (findProbe == it->end())
             {
                 std::cerr << "configuration file missing probe:\n " << *it
                           << "\n";
                 eraseConfig = true;
             }
-            if (findName == (*it).end())
-            {
-                std::cerr << "configuration file missing name:\n " << *it
-                          << "\n";
-                eraseConfig = true;
-            }
-
-            nlohmann::json probeCommand;
-            if ((*findProbe).type() != nlohmann::json::value_t::array)
+            else if ((*findProbe).type() != nlohmann::json::value_t::array)
             {
                 probeCommand = nlohmann::json::array();
                 probeCommand.push_back(*findProbe);
@@ -456,10 +703,18 @@
             {
                 probeCommand = *findProbe;
             }
+
+            if (findName == it->end())
+            {
+                std::cerr << "configuration file missing name:\n " << *it
+                          << "\n";
+                eraseConfig = true;
+            }
+
             std::vector<
                 boost::container::flat_map<std::string, dbus::dbus_variant>>
                 foundDevices;
-            if (probe(probeCommand, foundDevices))
+            if (!eraseConfig && probe(probeCommand, foundDevices))
             {
                 eraseConfig = true;
                 probePassed = true;
@@ -470,12 +725,15 @@
 
                 for (auto &foundDevice : foundDevices)
                 {
-                    auto findExpose = (*it).find("exposes");
-                    if (findExpose == (*it).end())
+                    for (auto keyPair = it->begin(); keyPair != it->end();
+                         keyPair++)
                     {
-                        std::cerr
-                            << "Warning, configuration file missing exposes"
-                            << *it << "\n";
+                        templateCharReplace(keyPair, foundDevice,
+                                            foundDeviceIdx);
+                    }
+                    auto findExpose = it->find("exposes");
+                    if (findExpose == it->end())
+                    {
                         continue;
                     }
                     for (auto &expose : *findExpose)
@@ -483,123 +741,75 @@
                         for (auto keyPair = expose.begin();
                              keyPair != expose.end(); keyPair++)
                         {
+
                             // fill in template characters with devices
                             // found
-                            if (keyPair.value().type() ==
-                                nlohmann::json::value_t::string)
+                            templateCharReplace(keyPair, foundDevice,
+                                                foundDeviceIdx);
+                            // special case bind
+                            if (boost::starts_with(keyPair.key(), "bind_"))
                             {
-                                std::string value = keyPair.value();
-                                if (value.find(TEMPLATE_CHAR) !=
-                                    std::string::npos)
+                                if (keyPair.value().type() !=
+                                    nlohmann::json::value_t::string)
                                 {
-                                    std::string templateValue = value;
-
-                                    templateValue.erase(
-                                        0, 1); // remove template character
-
-                                    // special case index
-                                    if ("index" == templateValue)
-                                    {
-                                        keyPair.value() = foundDeviceIdx;
-                                    }
-                                    else
-                                    {
-                                        std::string subsitute;
-                                        for (auto &foundDevicePair :
-                                             foundDevice)
-                                        {
-                                            if (boost::iequals(
-                                                    foundDevicePair.first,
-                                                    templateValue))
-                                            {
-                                                // convert value to string
-                                                // respresentation
-                                                subsitute =
-                                                    boost::apply_visitor(
-                                                        [](const auto &x) {
-                                                            return boost::
-                                                                lexical_cast<
-                                                                    std::
-                                                                        string>(
-                                                                    x);
-                                                        },
-                                                        foundDevicePair.second);
-                                                break;
-                                            }
-                                        }
-                                        if (!subsitute.size())
-                                        {
-                                            std::cerr << "could not find "
-                                                      << templateValue
-                                                      << " in device "
-                                                      << expose["name"] << "\n";
-                                        }
-                                        else
-                                        {
-                                            keyPair.value() = subsitute;
-                                        }
-                                    }
+                                    std::cerr
+                                        << "bind_ value must be of type string "
+                                        << keyPair.key() << "\n";
+                                    continue;
                                 }
-
-                                // special case bind
-                                if (boost::starts_with(keyPair.key(), "bind_"))
+                                bool foundBind = false;
+                                std::string bind =
+                                    keyPair.key().substr(sizeof("bind_") - 1);
+                                for (auto &configurationPair :
+                                     nlohmann::json::iterator_wrapper(
+                                         systemConfiguration))
                                 {
-                                    bool foundBind = false;
-                                    std::string bind = keyPair.key().substr(
-                                        sizeof("bind_") - 1);
-                                    for (auto &configurationPair :
-                                         nlohmann::json::iterator_wrapper(
-                                             systemConfiguration))
+
+                                    auto configListFind =
+                                        configurationPair.value().find(
+                                            "exposes");
+
+                                    if (configListFind ==
+                                            configurationPair.value().end() ||
+                                        configListFind->type() !=
+                                            nlohmann::json::value_t::array)
                                     {
-                                        auto &configList =
-                                            configurationPair
-                                                .value()["exposes"];
-                                        for (auto exposedObjectIt =
-                                                 configList.begin();
-                                             exposedObjectIt !=
-                                             configList.end();)
+                                        continue;
+                                    }
+                                    for (auto &exposedObject : *configListFind)
+                                    {
+                                        std::string foundObjectName =
+                                            (exposedObject)["name"];
+                                        if (boost::iequals(
+                                                foundObjectName,
+                                                keyPair.value()
+                                                    .get<std::string>()))
                                         {
-                                            std::string foundObjectName =
-                                                (*exposedObjectIt)["name"];
-                                            if (boost::iequals(foundObjectName,
-                                                               value))
-                                            {
-                                                (*exposedObjectIt)["status"] =
-                                                    "okay"; // todo: is this the
-                                                            // right spot?
-                                                expose[bind] =
-                                                    (*exposedObjectIt);
-                                                foundBind = true;
-                                                exposedObjectIt =
-                                                    configList.erase(
-                                                        exposedObjectIt);
-                                                break;
-                                            }
-                                            else
-                                            {
-                                                exposedObjectIt++;
-                                            }
-                                        }
-                                        if (foundBind)
-                                        {
+                                            expose[bind] = exposedObject;
+                                            expose[bind]["status"] = "okay";
+
+                                            foundBind = true;
                                             break;
                                         }
                                     }
-                                    if (!foundBind)
+                                    if (foundBind)
                                     {
-                                        std::cerr << "configuration file "
-                                                     "dependency error, "
-                                                     "could not find bind "
-                                                  << value << "\n";
-                                        return 1;
+                                        break;
                                     }
                                 }
+                                if (!foundBind)
+                                {
+                                    std::cerr << "configuration file "
+                                                 "dependency error, "
+                                                 "could not find bind "
+                                              << keyPair.value() << "\n";
+                                }
                             }
                         }
                     }
-                    systemConfiguration[name] = (*it);
-                    foundDeviceIdx++;
                 }
+                systemConfiguration[name] = (*it);
+                foundDeviceIdx++;
             }
 
             if (eraseConfig)
@@ -612,28 +822,11 @@
             }
         }
     }
-    // below here is temporary, to be added to dbus
-    std::experimental::filesystem::create_directory(OUTPUT_DIR);
-    std::ofstream output(std::string(OUTPUT_DIR) + "system.json");
-    output << systemConfiguration.dump(4);
-    output.close();
-
-    auto flat = nlohmann::json::array();
-    for (auto &pair : nlohmann::json::iterator_wrapper(systemConfiguration))
-    {
-        auto value = pair.value();
-        auto exposes = value.find("exposes");
-        if (exposes != value.end())
-        {
-            for (auto &item : *exposes)
-            {
-                flat.push_back(item);
-            }
-        }
-    }
-    output = std::ofstream(std::string(OUTPUT_DIR) + "flattened.json");
-    output << flat.dump(4);
-    output.close();
+    // this line to be removed in future
+    writeJsonFiles(systemConfiguration);
+    std::vector<std::shared_ptr<dbus::DbusObject>> busObjects;
+    postToDbus(systemConfiguration, objServer, busObjects);
+    io.run();
 
     return 0;
 }
\ No newline at end of file