diff --git a/src/processing.cpp b/src/processing.cpp
index 19f36a8..255433c 100644
--- a/src/processing.cpp
+++ b/src/processing.cpp
@@ -25,19 +25,19 @@
 }
 
 bool needToIntrospect(const std::string& processName,
-                      const WhiteBlackList& whiteList,
-                      const WhiteBlackList& blackList)
+                      const AllowDenyList& allowList,
+                      const AllowDenyList& denyList)
 {
-    auto inWhitelist =
-        std::find_if(whiteList.begin(), whiteList.end(),
+    auto inAllowList =
+        std::find_if(allowList.begin(), allowList.end(),
                      [&processName](const auto& prefix) {
                          return boost::starts_with(processName, prefix);
-                     }) != whiteList.end();
+                     }) != allowList.end();
 
     // This holds full service names, not prefixes
-    auto inBlacklist = blackList.find(processName) != blackList.end();
+    auto inDenyList = denyList.find(processName) != denyList.end();
 
-    return inWhitelist && !inBlacklist;
+    return inAllowList && !inDenyList;
 }
 
 void processNameChangeDelete(
