diff --git a/include/Utils.hpp b/include/Utils.hpp
index 0f1a5db..8d9eac5 100644
--- a/include/Utils.hpp
+++ b/include/Utils.hpp
@@ -6,10 +6,10 @@
 #include <sdbusplus/asio/connection.hpp>
 #include <sdbusplus/message/types.hpp>
 
-const constexpr char* JSON_STORE = "/var/configuration/flattened.json";
-const constexpr char* INVENTORY_PATH = "/xyz/openbmc_project/inventory";
-const constexpr char* ENTITY_MANAGER_NAME = "xyz.openbmc_project.EntityManager";
-const std::regex ILLEGAL_DBUS_REGEX("[^A-Za-z0-9_]");
+const constexpr char* jsonStore = "/var/configuration/flattened.json";
+const constexpr char* inventoryPath = "/xyz/openbmc_project/inventory";
+const constexpr char* entityManagerName = "xyz.openbmc_project.EntityManager";
+const std::regex illegalDbusRegex("[^A-Za-z0-9_]");
 
 using BasicVariantType =
     sdbusplus::message::variant<std::string, int64_t, uint64_t, double, int32_t,
@@ -23,10 +23,10 @@
 using SensorData = boost::container::flat_map<
     std::string, boost::container::flat_map<std::string, BasicVariantType>>;
 
-bool find_files(const std::experimental::filesystem::path dir_path,
-                const std::string& match_string,
-                std::vector<std::experimental::filesystem::path>& found_paths,
-                unsigned int symlink_depth = 1);
+bool findFiles(const std::experimental::filesystem::path dirPath,
+               const std::string& matchString,
+               std::vector<std::experimental::filesystem::path>& foundPaths,
+               unsigned int symlinkDepth = 1);
 bool isPowerOn(const std::shared_ptr<sdbusplus::asio::connection>& conn);
 bool getSensorConfiguration(
     const std::string& type,
