diff --git a/pid/pidloop.cpp b/pid/pidloop.cpp
index 9eed3a8..b86ea4b 100644
--- a/pid/pidloop.cpp
+++ b/pid/pidloop.cpp
@@ -31,8 +31,8 @@
 {
     // Get the latest margins.
     zone->updateSensors();
-    // Zero out the RPM set point goals.
-    zone->clearRPMSetPoints();
+    // Zero out the set point goals.
+    zone->clearSetPoints();
     zone->clearRPMCeilings();
     // Run the margin PIDs.
     zone->processThermals();
diff --git a/pid/stepwisecontroller.cpp b/pid/stepwisecontroller.cpp
index 2408502..c72d61a 100644
--- a/pid/stepwisecontroller.cpp
+++ b/pid/stepwisecontroller.cpp
@@ -101,7 +101,7 @@
     }
     else
     {
-        _owner->addRPMSetPoint(value);
+        _owner->addSetPoint(value);
     }
     return;
 }
diff --git a/pid/thermalcontroller.cpp b/pid/thermalcontroller.cpp
index d794525..5a5b9cc 100644
--- a/pid/thermalcontroller.cpp
+++ b/pid/thermalcontroller.cpp
@@ -102,7 +102,7 @@
 // bmc_set_pid_output
 void ThermalController::outputProc(double value)
 {
-    _owner->addRPMSetPoint(value);
+    _owner->addSetPoint(value);
 
     return;
 }
diff --git a/pid/zone.cpp b/pid/zone.cpp
index e206e17..47d6695 100644
--- a/pid/zone.cpp
+++ b/pid/zone.cpp
@@ -61,9 +61,9 @@
     return _zoneId;
 }
 
-void PIDZone::addRPMSetPoint(double setpoint)
+void PIDZone::addSetPoint(double setpoint)
 {
-    _RPMSetPoints.push_back(setpoint);
+    _SetPoints.push_back(setpoint);
 }
 
 void PIDZone::addRPMCeiling(double ceiling)
@@ -76,9 +76,9 @@
     _RPMCeilings.clear();
 }
 
-void PIDZone::clearRPMSetPoints(void)
+void PIDZone::clearSetPoints(void)
 {
-    _RPMSetPoints.clear();
+    _SetPoints.clear();
 }
 
 double PIDZone::getFailSafePercent(void) const
@@ -121,9 +121,9 @@
     double max = 0;
     std::vector<double>::iterator result;
 
-    if (_RPMSetPoints.size() > 0)
+    if (_SetPoints.size() > 0)
     {
-        result = std::max_element(_RPMSetPoints.begin(), _RPMSetPoints.end());
+        result = std::max_element(_SetPoints.begin(), _SetPoints.end());
         max = *result;
     }
 
diff --git a/pid/zone.hpp b/pid/zone.hpp
index 53139ec..5516bed 100644
--- a/pid/zone.hpp
+++ b/pid/zone.hpp
@@ -28,7 +28,7 @@
     virtual ~ZoneInterface() = default;
 
     virtual double getCachedValue(const std::string& name) = 0;
-    virtual void addRPMSetPoint(double setpoint) = 0;
+    virtual void addSetPoint(double setpoint) = 0;
     virtual void addRPMCeiling(double ceiling) = 0;
     virtual double getMaxRPMRequest() const = 0;
     virtual bool getFailSafeMode() const = 0;
@@ -67,9 +67,9 @@
     void setManualMode(bool mode);
     bool getFailSafeMode(void) const override;
     int64_t getZoneID(void) const;
-    void addRPMSetPoint(double setpoint) override;
+    void addSetPoint(double setpoint) override;
     void addRPMCeiling(double ceiling) override;
-    void clearRPMSetPoints(void);
+    void clearSetPoints(void);
     void clearRPMCeilings(void);
     double getFailSafePercent(void) const override;
     double getMinThermalRPMSetpoint(void) const;
@@ -108,7 +108,7 @@
 
     std::set<std::string> _failSafeSensors;
 
-    std::vector<double> _RPMSetPoints;
+    std::vector<double> _SetPoints;
     std::vector<double> _RPMCeilings;
     std::vector<std::string> _fanInputs;
     std::vector<std::string> _thermalInputs;
