diff --git a/system_configuration.hpp b/system_configuration.hpp
index e28d496..9e76dca 100644
--- a/system_configuration.hpp
+++ b/system_configuration.hpp
@@ -13,8 +13,7 @@
 using SystemConfigIntf =
     sdbusplus::xyz::openbmc_project::Network::server::SystemConfiguration;
 
-using Iface =
-    sdbusplus::server::object::object<SystemConfigIntf>;
+using Iface = sdbusplus::server::object::object<SystemConfigIntf>;
 
 class Manager; // forward declaration of network manager.
 
@@ -25,48 +24,45 @@
  */
 class SystemConfiguration : public Iface
 {
-    public:
-        SystemConfiguration() = default;
-        SystemConfiguration(const SystemConfiguration&) = delete;
-        SystemConfiguration& operator=(const SystemConfiguration&) = delete;
-        SystemConfiguration(SystemConfiguration&&) = delete;
-        SystemConfiguration& operator=(SystemConfiguration&&) = delete;
-        virtual ~SystemConfiguration() = default;
+  public:
+    SystemConfiguration() = default;
+    SystemConfiguration(const SystemConfiguration&) = delete;
+    SystemConfiguration& operator=(const SystemConfiguration&) = delete;
+    SystemConfiguration(SystemConfiguration&&) = delete;
+    SystemConfiguration& operator=(SystemConfiguration&&) = delete;
+    virtual ~SystemConfiguration() = default;
 
-        /** @brief Constructor to put object onto bus at a dbus path.
-         *  @param[in] bus - Bus to attach to.
-         *  @param[in] objPath - Path to attach at.
-         *  @param[in] parent - Parent object.
-         */
-        SystemConfiguration(sdbusplus::bus::bus& bus,
-                            const std::string& objPath,
-                            Manager& parent);
+    /** @brief Constructor to put object onto bus at a dbus path.
+     *  @param[in] bus - Bus to attach to.
+     *  @param[in] objPath - Path to attach at.
+     *  @param[in] parent - Parent object.
+     */
+    SystemConfiguration(sdbusplus::bus::bus& bus, const std::string& objPath,
+                        Manager& parent);
 
-        /** @brief set the hostname of the system.
-         *  @param[in] name - host name of the system.
-         */
-        std::string hostName(std::string name) override;
+    /** @brief set the hostname of the system.
+     *  @param[in] name - host name of the system.
+     */
+    std::string hostName(std::string name) override;
 
-        /** @brief set the default gateway of the system.
-         *  @param[in] gateway - default gateway of the system.
-         */
-        std::string defaultGateway(std::string gateway) override;
+    /** @brief set the default gateway of the system.
+     *  @param[in] gateway - default gateway of the system.
+     */
+    std::string defaultGateway(std::string gateway) override;
 
-        using SystemConfigIntf::defaultGateway;
+    using SystemConfigIntf::defaultGateway;
 
-    private:
+  private:
+    /** @brief get the hostname from the system by doing
+     *         dbus call to hostnamed service.
+     */
+    std::string getHostNameFromSystem() const;
 
-        /** @brief get the hostname from the system by doing
-         *         dbus call to hostnamed service.
-         */
-        std::string getHostNameFromSystem() const;
+    /** @brief Persistent sdbusplus DBus bus connection. */
+    sdbusplus::bus::bus& bus;
 
-        /** @brief Persistent sdbusplus DBus bus connection. */
-        sdbusplus::bus::bus& bus;
-
-        /** @brief Network Manager object. */
-        Manager& manager;
-
+    /** @brief Network Manager object. */
+    Manager& manager;
 };
 
 } // namespace network
