diff --git a/power-supply/average.hpp b/power-supply/average.hpp
index 817f0bf..a61a436 100644
--- a/power-supply/average.hpp
+++ b/power-supply/average.hpp
@@ -12,8 +12,8 @@
 template <typename T>
 using ServerObject = typename sdbusplus::server::object::object<T>;
 
-using AverageInterface = sdbusplus::org::open_power::
-        Sensor::Aggregation::History::server::Average;
+using AverageInterface =
+    sdbusplus::org::open_power::Sensor::Aggregation::History::server::Average;
 
 /**
  * @class Average
@@ -25,33 +25,30 @@
  */
 class Average : public ServerObject<AverageInterface>
 {
-    public:
+  public:
+    static constexpr auto name = "average";
 
-        static constexpr auto name = "average";
+    Average() = delete;
+    Average(const Average&) = delete;
+    Average& operator=(const Average&) = delete;
+    Average(Average&&) = delete;
+    Average& operator=(Average&&) = delete;
+    ~Average() = default;
 
-        Average() = delete;
-        Average(const Average&) = delete;
-        Average& operator=(const Average&) = delete;
-        Average(Average&&) = delete;
-        Average& operator=(Average&&) = delete;
-        ~Average() = default;
-
-        /**
-         * @brief Constructor
-         *
-         * @param[in] bus - D-Bus object
-         * @param[in] objectPath - the D-Bus object path
-         */
-        Average(sdbusplus::bus::bus& bus,
-                const std::string& objectPath) :
-                ServerObject<AverageInterface>(bus, objectPath.c_str())
-        {
-            unit(Average::Unit::Watts);
-            scale(0);
-        }
+    /**
+     * @brief Constructor
+     *
+     * @param[in] bus - D-Bus object
+     * @param[in] objectPath - the D-Bus object path
+     */
+    Average(sdbusplus::bus::bus& bus, const std::string& objectPath) :
+        ServerObject<AverageInterface>(bus, objectPath.c_str())
+    {
+        unit(Average::Unit::Watts);
+        scale(0);
+    }
 };
 
-
-}
-}
-}
+} // namespace history
+} // namespace power
+} // namespace witherspoon
