diff --git a/include/sensor.hpp b/include/sensor.hpp
index 19c3733..29f674a 100644
--- a/include/sensor.hpp
+++ b/include/sensor.hpp
@@ -8,20 +8,18 @@
 constexpr const char* sensorValueInterface = "xyz.openbmc_project.Sensor.Value";
 struct Sensor
 {
-    Sensor(const std::string& name, const std::string& path,
+    Sensor(const std::string& name,
            std::vector<thresholds::Threshold>&& thresholdData,
            const std::string& configurationPath, const std::string& objectType,
            const double max, const double min) :
         name(name),
-        path(path), configurationPath(configurationPath),
-        objectType(objectType), thresholds(std::move(thresholdData)),
-        maxValue(max), minValue(min)
+        configurationPath(configurationPath), objectType(objectType),
+        thresholds(std::move(thresholdData)), maxValue(max), minValue(min)
     {
     }
     virtual ~Sensor() = default;
     virtual void checkThresholds(void) = 0;
     std::string name;
-    std::string path;
     std::string configurationPath;
     std::string objectType;
     double maxValue;
