diff --git a/configure.ac b/configure.ac
index 89221ad..fd6284f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -110,61 +110,72 @@
 ])
 
 AS_IF([test "x$enable_control" != "xno"], [
-       # Add fan control Dbus attributes
-       AC_ARG_VAR(CONTROL_BUSNAME, [The fan control busname to own])
-       AS_IF([test "x$CONTROL_BUSNAME" == "x"],
-             [CONTROL_BUSNAME="xyz.openbmc_project.Control.Thermal"])
-       AC_DEFINE_UNQUOTED([CONTROL_BUSNAME], ["$CONTROL_BUSNAME"],
-                          [The fan control busname to own])
+    # Add fan control Dbus attributes
+    AC_ARG_VAR(CONTROL_BUSNAME, [The fan control busname to own])
+    AS_IF([test "x$CONTROL_BUSNAME" == "x"],
+          [CONTROL_BUSNAME="xyz.openbmc_project.Control.Thermal"])
+    AC_DEFINE_UNQUOTED([CONTROL_BUSNAME], ["$CONTROL_BUSNAME"],
+                       [The fan control busname to own])
 
-       AC_ARG_VAR(CONTROL_OBJPATH, [The fan control root object path])
-       AS_IF([test "x$CONTROL_OBJPATH" == "x"],
-             [CONTROL_OBJPATH="/xyz/openbmc_project/control/thermal"])
-       AC_DEFINE_UNQUOTED([CONTROL_OBJPATH], ["$CONTROL_OBJPATH"],
-                          [The fan control root object path])
+    AC_ARG_VAR(CONTROL_OBJPATH, [The fan control root object path])
+    AS_IF([test "x$CONTROL_OBJPATH" == "x"],
+          [CONTROL_OBJPATH="/xyz/openbmc_project/control/thermal"])
+    AC_DEFINE_UNQUOTED([CONTROL_OBJPATH], ["$CONTROL_OBJPATH"],
+                       [The fan control root object path])
 
-       AC_ARG_VAR(CONTROL_PERSIST_ROOT_PATH, [Root path for persisting zone property states])
-       AS_IF([test "x$CONTROL_PERSIST_ROOT_PATH" == "x"],
-             [CONTROL_PERSIST_ROOT_PATH="/var/lib/phosphor-fan-presence/control"])
-       AC_DEFINE_UNQUOTED([CONTROL_PERSIST_ROOT_PATH], ["$CONTROL_PERSIST_ROOT_PATH"],
-                          [Root path for persisting zone property states])
+    AC_ARG_VAR(CONTROL_PERSIST_ROOT_PATH, [Root path for persisting zone property states])
+    AS_IF([test "x$CONTROL_PERSIST_ROOT_PATH" == "x"],
+          [CONTROL_PERSIST_ROOT_PATH="/var/lib/phosphor-fan-presence/control"])
+    AC_DEFINE_UNQUOTED([CONTROL_PERSIST_ROOT_PATH], ["$CONTROL_PERSIST_ROOT_PATH"],
+                       [Root path for persisting zone property states])
 
-       # Add optional yaml file arguments
-       AC_ARG_VAR(FAN_DEF_YAML_FILE,
-                  [The fan definition file to use])
-       AS_IF([test "x$FAN_DEF_YAML_FILE" == "x"],
-             [FAN_DEF_YAML_FILE="\${top_srcdir}/control/example/fans.yaml"])
-       AC_DEFINE_UNQUOTED([FAN_DEF_YAML_FILE], ["$FAN_DEF_YAML_FILE"],
-                          [The fan definition file to use])
+    # Use runtime(json) config, otherwise default to compile time(yaml) config
+    AM_COND_IF([WANT_JSON],
+    [
+        AC_CHECK_HEADER(nlohmann/json.hpp, ,
+                [AC_MSG_ERROR([Could not find nlohmann/json.hpp... nlohmann/json package required])])
+        # Set config flag for runtime json usage
+        AC_DEFINE([CONTROL_USE_JSON], [1], [Fan control use runtime json configuration])
+        AC_MSG_NOTICE([Fan control json configuration usage enabled])
+    ],
+    [
+        # Add optional yaml file arguments
+        AC_ARG_VAR(FAN_DEF_YAML_FILE,
+                   [The fan definition file to use])
+        AS_IF([test "x$FAN_DEF_YAML_FILE" == "x"],
+              [FAN_DEF_YAML_FILE="\${top_srcdir}/control/example/fans.yaml"])
+        AC_DEFINE_UNQUOTED([FAN_DEF_YAML_FILE], ["$FAN_DEF_YAML_FILE"],
+                           [The fan definition file to use])
 
-       AC_ARG_VAR(FAN_ZONE_YAML_FILE,
-                  [The fan zone definition file to use])
-       AS_IF([test "x$FAN_ZONE_YAML_FILE" == "x"],
-             [FAN_ZONE_YAML_FILE="\${top_srcdir}/control/example/zones.yaml"])
-       AC_DEFINE_UNQUOTED([FAN_ZONE_YAML_FILE], ["$FAN_ZONE_YAML_FILE"],
-                          [The fan zone definition file to use])
+        AC_ARG_VAR(FAN_ZONE_YAML_FILE,
+                   [The fan zone definition file to use])
+        AS_IF([test "x$FAN_ZONE_YAML_FILE" == "x"],
+              [FAN_ZONE_YAML_FILE="\${top_srcdir}/control/example/zones.yaml"])
+        AC_DEFINE_UNQUOTED([FAN_ZONE_YAML_FILE], ["$FAN_ZONE_YAML_FILE"],
+                           [The fan zone definition file to use])
 
-      AC_ARG_VAR(ZONE_EVENTS_YAML_FILE,
-                 [The zone events definition file to use])
-      AS_IF([test "x$ZONE_EVENTS_YAML_FILE" == "x"],
-             [ZONE_EVENTS_YAML_FILE="\${top_srcdir}/control/example/events.yaml"])
-      AC_DEFINE_UNQUOTED([ZONE_EVENTS_YAML_FILE], ["$ZONE_EVENTS_YAML_FILE"],
-                         [The zone events definition file to use])
+        AC_ARG_VAR(ZONE_EVENTS_YAML_FILE,
+                   [The zone events definition file to use])
+        AS_IF([test "x$ZONE_EVENTS_YAML_FILE" == "x"],
+              [ZONE_EVENTS_YAML_FILE="\${top_srcdir}/control/example/events.yaml"])
+        AC_DEFINE_UNQUOTED([ZONE_EVENTS_YAML_FILE], ["$ZONE_EVENTS_YAML_FILE"],
+                           [The zone events definition file to use])
 
-      AC_ARG_VAR(ZONE_CONDITIONS_YAML_FILE,
-                 [The zone conditions definition file to use])
-      AS_IF([test "x$ZONE_CONDITIONS_YAML_FILE" == "x"],
-             [ZONE_CONDITIONS_YAML_FILE="\${top_srcdir}/control/example/zone_conditions.yaml"])
-      AC_DEFINE_UNQUOTED([ZONE_CONDITIONS_YAML_FILE], ["$ZONE_CONDITIONS_YAML_FILE"],
-                         [The zone conditions definition file to use])
+        AC_ARG_VAR(ZONE_CONDITIONS_YAML_FILE,
+                   [The zone conditions definition file to use])
+        AS_IF([test "x$ZONE_CONDITIONS_YAML_FILE" == "x"],
+              [ZONE_CONDITIONS_YAML_FILE="\${top_srcdir}/control/example/zone_conditions.yaml"])
+        AC_DEFINE_UNQUOTED([ZONE_CONDITIONS_YAML_FILE], ["$ZONE_CONDITIONS_YAML_FILE"],
+                           [The zone conditions definition file to use])
 
-      AC_SUBST([GEN_FAN_ZONE_DEFS],
-               ["$PYTHON \${top_srcdir}/control/gen-fan-zone-defs.py \
-                         -f $FAN_DEF_YAML_FILE \
-                         -z $FAN_ZONE_YAML_FILE \
-                         -e $ZONE_EVENTS_YAML_FILE \
-                         -c $ZONE_CONDITIONS_YAML_FILE"])
-      AC_CONFIG_FILES([control/Makefile])
+        AC_SUBST([GEN_FAN_ZONE_DEFS],
+                 ["$PYTHON \${top_srcdir}/control/gen-fan-zone-defs.py \
+                      -f $FAN_DEF_YAML_FILE \
+                      -z $FAN_ZONE_YAML_FILE \
+                      -e $ZONE_EVENTS_YAML_FILE \
+                      -c $ZONE_CONDITIONS_YAML_FILE"])
+    ])
+    AC_CONFIG_FILES([control/Makefile])
 ])
 
 AS_IF([test "x$enable_cooling_type" != "xno"], [
diff --git a/control/Makefile.am b/control/Makefile.am
index 8812b58..3ce3617 100644
--- a/control/Makefile.am
+++ b/control/Makefile.am
@@ -15,9 +15,6 @@
 	triggers.cpp \
 	zone.cpp
 
-nodist_phosphor_fan_control_SOURCES = \
-	fan_zone_defs.cpp
-
 phosphor_fan_control_LDADD = \
 	-lstdc++fs \
 	$(SDBUSPLUS_LIBS) \
@@ -33,7 +30,13 @@
 	${PHOSPHOR_DBUS_INTERFACES_CFLAGS} \
 	-flto
 
+if WANT_JSON
+phosphor_fan_control_SOURCES += json_parser.cpp
+else
 BUILT_SOURCES = fan_zone_defs.cpp
+nodist_phosphor_fan_control_SOURCES = \
+	fan_zone_defs.cpp
 
 fan_zone_defs.cpp: ${srcdir}/gen-fan-zone-defs.py
 	$(AM_V_GEN)$(GEN_FAN_ZONE_DEFS) > ${builddir}/$@
+endif
diff --git a/control/json_parser.cpp b/control/json_parser.cpp
new file mode 100644
index 0000000..2f5ddae
--- /dev/null
+++ b/control/json_parser.cpp
@@ -0,0 +1,19 @@
+/**
+ * Copyright © 2020 IBM Corporation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "json_parser.hpp"
+
+namespace phosphor::fan::control
+{} // namespace phosphor::fan::control
diff --git a/control/json_parser.hpp b/control/json_parser.hpp
new file mode 100644
index 0000000..eea2564
--- /dev/null
+++ b/control/json_parser.hpp
@@ -0,0 +1,19 @@
+/**
+ * Copyright © 2020 IBM Corporation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#pragma once
+
+namespace phosphor::fan::control
+{} // namespace phosphor::fan::control
diff --git a/control/manager.cpp b/control/manager.cpp
index 543d42f..d202fea 100644
--- a/control/manager.cpp
+++ b/control/manager.cpp
@@ -90,6 +90,7 @@
     // actual system configuration.
 
     // Find the 1 ZoneGroup that meets all of its conditions
+#ifndef CONTROL_USE_JSON
     for (auto& group : _zoneLayouts)
     {
         auto& conditions = std::get<conditionListPos>(group);
@@ -114,6 +115,7 @@
             break;
         }
     }
+#endif
 
     if (mode == Mode::control)
     {
@@ -127,13 +129,13 @@
     {
         z.second->setFullSpeed();
     }
-
+#ifndef CONTROL_USE_JSON
     auto delay = _powerOnDelay;
     while (delay > 0)
     {
         delay = sleep(delay);
     }
-
+#endif
     util::SDBusPlus::callMethod(_bus, SYSTEMD_SERVICE, SYSTEMD_OBJ_PATH,
                                 SYSTEMD_INTERFACE, "StartUnit",
                                 FAN_CONTROL_READY_TARGET, "replace");
diff --git a/control/manager.hpp b/control/manager.hpp
index 34ae0b9..a2e44f5 100644
--- a/control/manager.hpp
+++ b/control/manager.hpp
@@ -1,5 +1,7 @@
 #pragma once
 
+#include "config.h"
+
 #include "types.hpp"
 #include "zone.hpp"
 
@@ -65,7 +67,7 @@
      * The fan zones in the system
      */
     ZoneMap _zones;
-
+#ifndef CONTROL_USE_JSON
     /**
      * The fan zone layout for the system.
      * This is generated data.
@@ -78,6 +80,7 @@
      * to give them a chance to get there.
      */
     static const unsigned int _powerOnDelay;
+#endif
 };
 
 } // namespace control
