diff --git a/env.cpp b/env.cpp
index efd081b..3194441 100644
--- a/env.cpp
+++ b/env.cpp
@@ -48,6 +48,34 @@
     return getEnv(prefix, sensor);
 }
 
+std::string getIndirectID(
+        std::string path,
+        const SensorSet::key_type& sensor)
+{
+    std::string content;
+
+    path.append(sensor.first);
+    path.append(sensor.second);
+    path.append(1, '_');
+    path.append(hwmon::entry::label);
+
+    std::ifstream handle(path.c_str());
+    if (!handle.fail())
+    {
+        content.assign(
+                (std::istreambuf_iterator<char>(handle)),
+                (std::istreambuf_iterator<char>()));
+
+        if (!content.empty())
+        {
+            //remove the newline
+            content.pop_back();
+        }
+    }
+
+    return content;
+}
+
 std::string getIndirectLabelEnv(
     const char* prefix, std::string path, const SensorSet::key_type& sensor)
 {
