diff --git a/mainloop.cpp b/mainloop.cpp
index d9fb850..66e48a8 100644
--- a/mainloop.cpp
+++ b/mainloop.cpp
@@ -20,7 +20,6 @@
 #include <chrono>
 #include <algorithm>
 #include "sensorset.hpp"
-#include "sensorcache.hpp"
 #include "hwmon.hpp"
 #include "sysfs.hpp"
 #include "mainloop.hpp"
@@ -89,7 +88,6 @@
 {
     // Check sysfs for available sensors.
     auto sensors = std::make_unique<SensorSet>(_path);
-    auto sensor_cache = std::make_unique<SensorCache>();
 
     for (auto& i : *sensors)
     {
@@ -194,14 +192,6 @@
                                      (iface->second);
                     realIface->value(value);
                 }
-
-                // Update sensor cache.
-                if (sensor_cache->update(i.first, value))
-                {
-                    // TODO: Issue#4 - dbus event here.
-                    std::cout << i.first.first << i.first.second << " = "
-                              << value << std::endl;
-                }
             }
         }
 
diff --git a/sensorcache.hpp b/sensorcache.hpp
deleted file mode 100644
index 6e8c4f1..0000000
--- a/sensorcache.hpp
+++ /dev/null
@@ -1,29 +0,0 @@
-#pragma once
-
-#include <map>
-
-class SensorCache
-{
-    public:
-        typedef std::map<std::pair<std::string, std::string>,
-                int> container_t;
-
-        bool update(const container_t::key_type& k,
-                    const container_t::mapped_type& v)
-        {
-            auto& i = container[k];
-            if (v == i)
-            {
-                return false;
-            }
-            else
-            {
-                i = v;
-                return true;
-            }
-        }
-    private:
-        container_t container;
-};
-
-// vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4
