diff --git a/src/FanMain.cpp b/src/FanMain.cpp
index 6dccee5..f888e17 100644
--- a/src/FanMain.cpp
+++ b/src/FanMain.cpp
@@ -62,6 +62,13 @@
 // todo: power supply fan redundancy
 std::optional<RedundancySensor> systemRedundancy;
 
+static const std::map<std::string, FanTypes> compatibleFanTypes = {
+    {"aspeed,ast2400-pwm-tacho", FanTypes::aspeed},
+    {"aspeed,ast2500-pwm-tacho", FanTypes::aspeed},
+    {"nuvoton,npcm750-pwm-fan", FanTypes::nuvoton}
+    // add compatible string here for new fan type
+};
+
 FanTypes getFanType(const fs::path& parentPath)
 {
     fs::path linkPath = parentPath / "of_node";
@@ -70,30 +77,26 @@
     std::string compatiblePath = canonical + "/compatible";
     std::ifstream compatibleStream(compatiblePath);
 
-    if (!compatibleStream.is_open())
+    if (!compatibleStream)
     {
         std::cerr << "Error opening " << compatiblePath << "\n";
-        return FanTypes::i2c; // Should this throw an exception instead?
+        return FanTypes::i2c;
     }
 
     std::string compatibleString;
-    while (compatibleStream.peek() != EOF)
+    while (std::getline(compatibleStream, compatibleString))
     {
-        std::getline(compatibleStream, compatibleString);
         compatibleString.pop_back(); // trim EOL before comparisons
 
-        if (compatibleString == "aspeed,ast2400-pwm-tacho" ||
-            compatibleString == "aspeed,ast2500-pwm-tacho")
+        std::map<std::string, FanTypes>::const_iterator compatibleIterator =
+            compatibleFanTypes.find(compatibleString);
+
+        if (compatibleIterator != compatibleFanTypes.end())
         {
-            return FanTypes::aspeed;
-        }
-        if (compatibleString == "nuvoton,npcm750-pwm-fan")
-        {
-            return FanTypes::nuvoton;
+            return compatibleIterator->second;
         }
     }
 
-    // todo: will we need to support other types?
     return FanTypes::i2c;
 }
 void enablePwm(const fs::path& filePath)
@@ -316,8 +319,8 @@
                 }
                 if (fanType == FanTypes::aspeed || fanType == FanTypes::nuvoton)
                 {
-                    // there will be only 1 aspeed or nuvoton sensor object
-                    // in sysfs, we found the fan
+                    // there will be only 1 aspeed or nuvoton
+                    // object in sysfs, we found the fan
                     sensorData = &cfgData;
                     break;
                 }
