diff --git a/configure.ac b/configure.ac
index fd6284f..97f6e38 100644
--- a/configure.ac
+++ b/configure.ac
@@ -175,7 +175,7 @@
                       -e $ZONE_EVENTS_YAML_FILE \
                       -c $ZONE_CONDITIONS_YAML_FILE"])
     ])
-    AC_CONFIG_FILES([control/Makefile])
+    AC_CONFIG_FILES([control/json/Makefile control/Makefile])
 ])
 
 AS_IF([test "x$enable_cooling_type" != "xno"], [
diff --git a/control/Makefile.am b/control/Makefile.am
index 3ce3617..da67ee5 100644
--- a/control/Makefile.am
+++ b/control/Makefile.am
@@ -31,6 +31,8 @@
 	-flto
 
 if WANT_JSON
+SUBDIRS = json .
+phosphor_fan_control_LDADD += ${builddir}/json/libfan-control-json.la
 phosphor_fan_control_SOURCES += json_parser.cpp
 else
 BUILT_SOURCES = fan_zone_defs.cpp
diff --git a/control/json/Makefile.am b/control/json/Makefile.am
new file mode 100644
index 0000000..9011bd1
--- /dev/null
+++ b/control/json/Makefile.am
@@ -0,0 +1,13 @@
+AM_DEFAULT_SOURCE_EXT = .cpp
+AM_CPPFLAGS = -I${top_srcdir} -I${top_srcdir}/control
+
+noinst_LTLIBRARIES = libfan-control-json.la
+libfan_control_json_la_LDFLAGS = -static
+libfan_control_json_la_LIBADD = \
+	$(SDBUSPLUS_LIBS)
+
+libfan_control_json_la_CXXFLAGS = \
+	$(SDBUSPLUS_CFLAGS)
+
+libfan_control_json_la_SOURCES = \
+	profiles.cpp
diff --git a/control/json/profiles.cpp b/control/json/profiles.cpp
new file mode 100644
index 0000000..289d77f
--- /dev/null
+++ b/control/json/profiles.cpp
@@ -0,0 +1,32 @@
+/**
+ * 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 "profiles.hpp"
+
+#include "json_config.hpp"
+#include "json_parser.hpp"
+
+#include <sdbusplus/bus.hpp>
+
+namespace phosphor::fan::control::json
+{
+
+Profiles::Profiles(sdbusplus::bus::bus& bus)
+{
+    _jsonObj = fan::JsonConfig::load(
+        fan::JsonConfig::getConfFile(bus, confAppName, confFileName));
+}
+
+} // namespace phosphor::fan::control::json
diff --git a/control/json/profiles.hpp b/control/json/profiles.hpp
new file mode 100644
index 0000000..f6ba56e
--- /dev/null
+++ b/control/json/profiles.hpp
@@ -0,0 +1,52 @@
+/**
+ * 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
+
+#include <nlohmann/json.hpp>
+#include <sdbusplus/bus.hpp>
+
+namespace phosphor::fan::control::json
+{
+
+using json = nlohmann::json;
+
+class Profiles
+{
+  public:
+    Profiles() = delete;
+    Profiles(const Profiles&) = delete;
+    Profiles(Profiles&&) = delete;
+    Profiles& operator=(const Profiles&) = delete;
+    Profiles& operator=(Profiles&&) = delete;
+    ~Profiles() = default;
+
+    /**
+     * Constructor
+     * Parses and populates the zone profiles from a json file
+     *
+     * @param[in] bus - sdbusplus bus object
+     */
+    explicit Profiles(sdbusplus::bus::bus& bus);
+
+  private:
+    /* JSON file name for profiles */
+    static constexpr auto confFileName = "profiles.json";
+
+    /* The parsed JSON object */
+    json _jsonObj;
+};
+
+} // namespace phosphor::fan::control::json
diff --git a/control/json_parser.hpp b/control/json_parser.hpp
index eea2564..4a59b2e 100644
--- a/control/json_parser.hpp
+++ b/control/json_parser.hpp
@@ -16,4 +16,8 @@
 #pragma once
 
 namespace phosphor::fan::control
-{} // namespace phosphor::fan::control
+{
+
+constexpr auto confAppName = "control";
+
+} // namespace phosphor::fan::control
