diff --git a/monitor/fan.cpp b/monitor/fan.cpp
index 054c67d..a2e0386 100644
--- a/monitor/fan.cpp
+++ b/monitor/fan.cpp
@@ -27,7 +27,6 @@
 {
 
 using namespace phosphor::logging;
-using TimerType = phosphor::fan::util::Timer::TimerType;
 
 constexpr auto INVENTORY_PATH = "/xyz/openbmc_project/inventory";
 constexpr auto INVENTORY_INTF = "xyz.openbmc_project.Inventory.Manager";
@@ -90,8 +89,7 @@
 
 void Fan::tachChanged(TachSensor& sensor)
 {
-    auto& timer = sensor.getTimer();
-    auto running = timer.running();
+    auto running = sensor.timerRunning();
 
     //If this sensor is out of range at this moment, start
     //its timer, at the end of which the inventory
@@ -103,7 +101,7 @@
     {
         if (sensor.functional() && !running)
         {
-            timer.start(sensor.getTimeout(), TimerType::oneshot);
+            sensor.startTimer();
         }
     }
     else
@@ -115,7 +113,7 @@
 
         if (running)
         {
-            timer.stop();
+            sensor.stopTimer();
         }
 
         //If the fan was nonfunctional and enough sensors are now OK,
diff --git a/monitor/tach_sensor.hpp b/monitor/tach_sensor.hpp
index 4691d1e..60a55e3 100644
--- a/monitor/tach_sensor.hpp
+++ b/monitor/tach_sensor.hpp
@@ -101,11 +101,32 @@
         }
 
         /**
-         * Returns the timer object for this sensor
+         * @brief Says if the timer is running or not
+         *
+         * @return bool - if timer is currently running
          */
-        inline phosphor::fan::util::Timer& getTimer()
+        inline bool timerRunning()
         {
-            return _timer;
+            return _timer.running();
+        }
+
+        /**
+         * @brief Starts the timer for the amount of time
+         *        specified in the constructor
+         */
+        inline void startTimer()
+        {
+            _timer.start(
+                    getTimeout(),
+                    phosphor::fan::util::Timer::TimerType::oneshot);
+        }
+
+        /**
+         * @brief Stops the timer
+         */
+        inline void stopTimer()
+        {
+            _timer.stop();
         }
 
         /**
