diff --git a/src/common/mainWorldOptionsWatcher/Server.js b/src/common/mainWorldOptionsWatcher/Server.js
index 353c63d..efa5438 100644
--- a/src/common/mainWorldOptionsWatcher/Server.js
+++ b/src/common/mainWorldOptionsWatcher/Server.js
@@ -1,4 +1,4 @@
-import OptionsWatcher from '../../common/optionsWatcher.js';
+import PartialOptionsWatcher from '../partialOptionsWatcher.js';
 import MainWorldContentScriptBridgeServer from '../mainWorldContentScriptBridge/Server.js';
 
 // Main World OptionsWatcher server (used in content scripts to be able to serve
@@ -13,7 +13,7 @@
 
   handleMessage(uuid, action, request) {
     if (action === 'setUp') {
-      this.optionsWatcher = new OptionsWatcher(request?.options);
+      this.optionsWatcher = new PartialOptionsWatcher(request?.options);
       return;
     }
 
diff --git a/src/common/optionsWatcher.js b/src/common/partialOptionsWatcher.js
similarity index 97%
rename from src/common/optionsWatcher.js
rename to src/common/partialOptionsWatcher.js
index de14a85..3c6cec2 100644
--- a/src/common/optionsWatcher.js
+++ b/src/common/partialOptionsWatcher.js
@@ -2,7 +2,7 @@
 
 import {getOptions} from './optionsUtils.js';
 
-export default class OptionsWatcher {
+export default class PartialOptionsWatcher {
   constructor(options) {
     this.watchedOptions = options;
     this.options = [];
diff --git a/src/contentScripts/communityConsole/avatars.js b/src/contentScripts/communityConsole/avatars.js
index 42ea811..66123b0 100644
--- a/src/contentScripts/communityConsole/avatars.js
+++ b/src/contentScripts/communityConsole/avatars.js
@@ -2,7 +2,7 @@
 
 import {CCApi} from '../../common/api.js';
 import {parseUrl} from '../../common/commonUtils.js';
-import OptionsWatcher from '../../common/optionsWatcher.js';
+import PartialOptionsWatcher from '../../common/partialOptionsWatcher.js';
 import {createPlainTooltip} from '../../common/tooltip.js';
 
 import AvatarsDB from './utils/AvatarsDB.js'
@@ -12,7 +12,7 @@
     this.isFilterSetUp = false;
     this.privateForums = [];
     this.db = new AvatarsDB();
-    this.optionsWatcher = new OptionsWatcher(['threadlistavatars']);
+    this.optionsWatcher = new PartialOptionsWatcher(['threadlistavatars']);
 
     // Preload whether the option is enabled or not. This is because in the case
     // avatars should be injected, if we don't preload this the layout will
diff --git a/src/features/extraInfo/core/index.js b/src/features/extraInfo/core/index.js
index c7be5cd..d016904 100644
--- a/src/features/extraInfo/core/index.js
+++ b/src/features/extraInfo/core/index.js
@@ -1,4 +1,4 @@
-import OptionsWatcher from '../../../common/optionsWatcher.js';
+import PartialOptionsWatcher from '../../../common/partialOptionsWatcher.js';
 
 import ProfileInfoHandler from './infoHandlers/profile.js';
 import ThreadInfoHandler from './infoHandlers/thread.js';
@@ -13,7 +13,7 @@
 
 export default class ExtraInfo {
   constructor() {
-    const optionsWatcher = new OptionsWatcher(['extrainfo', 'perforumstats']);
+    const optionsWatcher = new PartialOptionsWatcher(['extrainfo', 'perforumstats']);
 
     const profileInfoHandler = new ProfileInfoHandler();
     const threadInfoHandler = new ThreadInfoHandler();
