diff --git a/sensors/include/TachSensor.hpp b/sensors/include/TachSensor.hpp
new file mode 100644
index 0000000..2c8b535
--- /dev/null
+++ b/sensors/include/TachSensor.hpp
@@ -0,0 +1,44 @@
+#pragma once
+
+#include <Thresholds.hpp>
+#include <sdbusplus/asio/object_server.hpp>
+
+class TachSensor
+{
+  public:
+    std::string name;
+    std::string configuration;
+    TachSensor(const std::string &path,
+               sdbusplus::asio::object_server &objectServer,
+               std::shared_ptr<sdbusplus::asio::connection> &conn,
+               boost::asio::io_service &io, const std::string &fan_name,
+               std::vector<thresholds::Threshold> &&thresholds,
+               const std::string &sensorConfiguration);
+    ~TachSensor();
+
+  private:
+    std::string path;
+    sdbusplus::asio::object_server &objServer;
+    std::shared_ptr<sdbusplus::asio::connection> dbusConnection;
+    std::vector<thresholds::Threshold> thresholds;
+    std::shared_ptr<sdbusplus::asio::dbus_interface> sensor_interface;
+    std::shared_ptr<sdbusplus::asio::dbus_interface>
+        threshold_interface_warning;
+    std::shared_ptr<sdbusplus::asio::dbus_interface>
+        threshold_interface_critical;
+    boost::asio::posix::stream_descriptor input_dev;
+    boost::asio::deadline_timer wait_timer;
+    boost::asio::streambuf read_buf;
+    double value;
+    int err_count;
+    double max_value;
+    double min_value;
+    void setup_read(void);
+    void handle_response(const boost::system::error_code &err);
+    void check_thresholds(void);
+    void update_value(const double &new_value);
+    void assert_thresholds(thresholds::Level level,
+                           thresholds::Direction direction, bool assert);
+    void set_initial_properties(
+        std::shared_ptr<sdbusplus::asio::connection> &conn);
+};
