Index: lib/elemHide.js
===================================================================
--- a/lib/elemHide.js
+++ b/lib/elemHide.js
@@ -17,17 +17,17 @@
 
 "use strict";
 
 /**
  * @fileOverview Element hiding implementation.
  */
 
 const {ElemHideExceptions} = require("./elemHideExceptions");
-const {FilterNotifier} = require("./filterNotifier");
+const {filterNotifier} = require("./filterNotifier");
 
 /**
  * Lookup table, active flag, by filter by domain.
  * (Only contains filters that aren't unconditionally matched for all domains.)
  * @type {Map.<string,Map.<Filter,boolean>>}
  */
 let filtersByDomain = new Map();
 
@@ -113,17 +113,17 @@
    * Removes all known filters
    */
   clear()
   {
     for (let collection of [filtersByDomain, filterBySelector, knownFilters])
       collection.clear();
 
     unconditionalSelectors = null;
-    FilterNotifier.emit("elemhideupdate");
+    filterNotifier.emit("elemhideupdate");
   },
 
   /**
    * Add a new element hiding filter
    * @param {ElemHideFilter} filter
    */
   add(filter)
   {
@@ -140,17 +140,17 @@
     }
     else
     {
       // The new filter's selector only applies to some domains
       addToFiltersByDomain(filter);
     }
 
     knownFilters.add(filter);
-    FilterNotifier.emit("elemhideupdate");
+    filterNotifier.emit("elemhideupdate");
   },
 
   /**
    * Removes an element hiding filter
    * @param {ElemHideFilter} filter
    */
   remove(filter)
   {
@@ -178,17 +178,17 @@
 
           if (filters.size == 0)
             filtersByDomain.delete(domain);
         }
       }
     }
 
     knownFilters.delete(filter);
-    FilterNotifier.emit("elemhideupdate");
+    filterNotifier.emit("elemhideupdate");
   },
 
   /**
    * Determines from the current filter list which selectors should be applied
    * on a particular host name.
    * @param {string} domain
    * @param {boolean} [specificOnly] true if generic filters should not apply.
    * @returns {string[]} List of selectors.
Index: lib/elemHideExceptions.js
===================================================================
--- a/lib/elemHideExceptions.js
+++ b/lib/elemHideExceptions.js
@@ -17,17 +17,17 @@
 
 "use strict";
 
 /**
  * @fileOverview Element hiding exceptions implementation.
  */
 
 const {EventEmitter} = require("./events");
-const {FilterNotifier} = require("./filterNotifier");
+const {filterNotifier} = require("./filterNotifier");
 
 /**
  * Lookup table, lists of element hiding exceptions by selector
  * @type {Map.<string,ElemHideException[]>}
  */
 let exceptions = new Map();
 
 /**
@@ -44,17 +44,17 @@
   /**
    * Removes all known exceptions
    */
   clear()
   {
     exceptions.clear();
     knownExceptions.clear();
 
-    FilterNotifier.emit("elemhideupdate");
+    filterNotifier.emit("elemhideupdate");
   },
 
   /**
    * Add a new element hiding exception
    * @param {ElemHideException} exception
    */
   add(exception)
   {
@@ -67,17 +67,17 @@
       list.push(exception);
     else
       exceptions.set(selector, [exception]);
 
     knownExceptions.add(exception);
 
     this.emit("added", exception);
 
-    FilterNotifier.emit("elemhideupdate");
+    filterNotifier.emit("elemhideupdate");
   },
 
   /**
    * Removes an element hiding exception
    * @param {ElemHideException} exception
    */
   remove(exception)
   {
@@ -88,17 +88,17 @@
     let index = list.indexOf(exception);
     if (index >= 0)
       list.splice(index, 1);
 
     knownExceptions.delete(exception);
 
     this.emit("removed", exception);
 
-    FilterNotifier.emit("elemhideupdate");
+    filterNotifier.emit("elemhideupdate");
   },
 
   /**
    * Checks whether any exception rules are registered for a selector
    * @param {string} selector
    * @returns {boolean}
    */
   hasExceptions(selector)
Index: lib/filterClasses.js
===================================================================
--- a/lib/filterClasses.js
+++ b/lib/filterClasses.js
@@ -16,17 +16,17 @@
  */
 
 "use strict";
 
 /**
  * @fileOverview Definition of Filter class and its subclasses.
  */
 
-const {FilterNotifier} = require("./filterNotifier");
+const {filterNotifier} = require("./filterNotifier");
 const {extend} = require("./coreUtils");
 const {filterToRegExp} = require("./common");
 
 /**
  * All known unique domain sources mapped to their parsed values.
  * @type {Map.<string,Map.<string,boolean>>}
  */
 let knownDomainMaps = new Map();
@@ -314,17 +314,17 @@
     return this._disabled;
   },
   set disabled(value)
   {
     if (value != this._disabled)
     {
       let oldValue = this._disabled;
       this._disabled = value;
-      FilterNotifier.emit("filter.disabled", this, value, oldValue);
+      filterNotifier.emit("filter.disabled", this, value, oldValue);
     }
     return this._disabled;
   },
 
   /**
    * Number of hits on the filter since the last reset
    * @type {number}
    */
@@ -333,17 +333,17 @@
     return this._hitCount;
   },
   set hitCount(value)
   {
     if (value != this._hitCount)
     {
       let oldValue = this._hitCount;
       this._hitCount = value;
-      FilterNotifier.emit("filter.hitCount", this, value, oldValue);
+      filterNotifier.emit("filter.hitCount", this, value, oldValue);
     }
     return this._hitCount;
   },
 
   /**
    * Last time the filter had a hit (in milliseconds since the beginning of the
    * epoch)
    * @type {number}
@@ -353,17 +353,17 @@
     return this._lastHit;
   },
   set lastHit(value)
   {
     if (value != this._lastHit)
     {
       let oldValue = this._lastHit;
       this._lastHit = value;
-      FilterNotifier.emit("filter.lastHit", this, value, oldValue);
+      filterNotifier.emit("filter.lastHit", this, value, oldValue);
     }
     return this._lastHit;
   },
 
   /**
    * String that the domains property should be generated from
    * @type {?string}
    */
Index: lib/filterListener.js
===================================================================
--- a/lib/filterListener.js
+++ b/lib/filterListener.js
@@ -21,17 +21,17 @@
  * @fileOverview Component synchronizing filter storage with Matcher
  *               instances and ElemHide.
  */
 
 const {Services} = Cu.import("resource://gre/modules/Services.jsm", {});
 const {XPCOMUtils} = Cu.import("resource://gre/modules/XPCOMUtils.jsm", {});
 
 const {FilterStorage} = require("./filterStorage");
-const {FilterNotifier} = require("./filterNotifier");
+const {filterNotifier} = require("./filterNotifier");
 const {ElemHide} = require("./elemHide");
 const {ElemHideEmulation} = require("./elemHideEmulation");
 const {ElemHideExceptions} = require("./elemHideExceptions");
 const {Snippets} = require("./snippets");
 const {defaultMatcher} = require("./matcher");
 const {ActiveFilter, RegExpFilter,
        ElemHideBase, ElemHideFilter, ElemHideEmulationFilter,
        SnippetFilter} = require("./filterClasses");
@@ -92,37 +92,37 @@
   )
 };
 
 /**
  * Initializes filter listener on startup, registers the necessary hooks.
  */
 function init()
 {
-  FilterNotifier.on("filter.hitCount", onFilterHitCount);
-  FilterNotifier.on("filter.lastHit", onFilterLastHit);
-  FilterNotifier.on("filter.added", onFilterAdded);
-  FilterNotifier.on("filter.removed", onFilterRemoved);
-  FilterNotifier.on("filter.disabled", onFilterDisabled);
-  FilterNotifier.on("filter.moved", onGenericChange);
+  filterNotifier.on("filter.hitCount", onFilterHitCount);
+  filterNotifier.on("filter.lastHit", onFilterLastHit);
+  filterNotifier.on("filter.added", onFilterAdded);
+  filterNotifier.on("filter.removed", onFilterRemoved);
+  filterNotifier.on("filter.disabled", onFilterDisabled);
+  filterNotifier.on("filter.moved", onGenericChange);
 
-  FilterNotifier.on("subscription.added", onSubscriptionAdded);
-  FilterNotifier.on("subscription.removed", onSubscriptionRemoved);
-  FilterNotifier.on("subscription.disabled", onSubscriptionDisabled);
-  FilterNotifier.on("subscription.updated", onSubscriptionUpdated);
-  FilterNotifier.on("subscription.moved", onGenericChange);
-  FilterNotifier.on("subscription.title", onGenericChange);
-  FilterNotifier.on("subscription.fixedTitle", onGenericChange);
-  FilterNotifier.on("subscription.homepage", onGenericChange);
-  FilterNotifier.on("subscription.downloadStatus", onGenericChange);
-  FilterNotifier.on("subscription.lastCheck", onGenericChange);
-  FilterNotifier.on("subscription.errors", onGenericChange);
+  filterNotifier.on("subscription.added", onSubscriptionAdded);
+  filterNotifier.on("subscription.removed", onSubscriptionRemoved);
+  filterNotifier.on("subscription.disabled", onSubscriptionDisabled);
+  filterNotifier.on("subscription.updated", onSubscriptionUpdated);
+  filterNotifier.on("subscription.moved", onGenericChange);
+  filterNotifier.on("subscription.title", onGenericChange);
+  filterNotifier.on("subscription.fixedTitle", onGenericChange);
+  filterNotifier.on("subscription.homepage", onGenericChange);
+  filterNotifier.on("subscription.downloadStatus", onGenericChange);
+  filterNotifier.on("subscription.lastCheck", onGenericChange);
+  filterNotifier.on("subscription.errors", onGenericChange);
 
-  FilterNotifier.on("load", onLoad);
-  FilterNotifier.on("save", onSave);
+  filterNotifier.on("load", onLoad);
+  filterNotifier.on("save", onSave);
 
   FilterStorage.loadFromDisk();
 
   Services.obs.addObserver(HistoryPurgeObserver,
                            "browser:purge-session-history", true);
   onShutdown.add(() =>
   {
     Services.obs.removeObserver(HistoryPurgeObserver,
Index: lib/filterNotifier.js
===================================================================
--- a/lib/filterNotifier.js
+++ b/lib/filterNotifier.js
@@ -13,19 +13,21 @@
  *
  * You should have received a copy of the GNU General Public License
  * along with Adblock Plus.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 "use strict";
 
 /**
- * @fileOverview This component manages listeners and calls them to distributes
+ * @fileOverview This component manages listeners and calls them to distribute
  * messages about filter changes.
  */
 
 const {EventEmitter} = require("./events");
 
 /**
- * This class allows registering and triggering listeners for filter events.
- * @class
+ * This object allows registering and triggering listeners for filter events.
+ * @type {EventEmitter}
  */
-exports.FilterNotifier = Object.create(new EventEmitter());
+let filterNotifier = new EventEmitter();
+
+exports.filterNotifier = filterNotifier;
Index: lib/filterStorage.js
===================================================================
--- a/lib/filterStorage.js
+++ b/lib/filterStorage.js
@@ -22,17 +22,17 @@
  *               subscriptions and filters.
  */
 
 const {IO} = require("io");
 const {Prefs} = require("prefs");
 const {Filter, ActiveFilter} = require("./filterClasses");
 const {Subscription, SpecialSubscription,
        ExternalSubscription} = require("./subscriptionClasses");
-const {FilterNotifier} = require("./filterNotifier");
+const {filterNotifier} = require("./filterNotifier");
 const {INIParser} = require("./iniParser");
 
 /**
  * Version number of the filter storage file format.
  * @type {number}
  */
 let formatVersion = 5;
 
@@ -127,17 +127,17 @@
   {
     if (FilterStorage.knownSubscriptions.has(subscription.url))
       return;
 
     FilterStorage.subscriptions.push(subscription);
     FilterStorage.knownSubscriptions.set(subscription.url, subscription);
     addSubscriptionFilters(subscription);
 
-    FilterNotifier.emit("subscription.added", subscription);
+    filterNotifier.emit("subscription.added", subscription);
   },
 
   /**
    * Removes a filter subscription from the list
    * @param {Subscription} subscription filter subscription to be removed
    */
   removeSubscription(subscription)
   {
@@ -149,17 +149,17 @@
 
         FilterStorage.subscriptions.splice(i--, 1);
         FilterStorage.knownSubscriptions.delete(subscription.url);
 
         // This should be the last remaining reference to the Subscription
         // object.
         Subscription.knownSubscriptions.delete(subscription.url);
 
-        FilterNotifier.emit("subscription.removed", subscription);
+        filterNotifier.emit("subscription.removed", subscription);
         return;
       }
     }
   },
 
   /**
    * Moves a subscription in the list to a new position.
    * @param {Subscription} subscription filter subscription to be moved
@@ -181,31 +181,31 @@
 
     if (currentPos < newPos)
       newPos--;
     if (currentPos == newPos)
       return;
 
     FilterStorage.subscriptions.splice(currentPos, 1);
     FilterStorage.subscriptions.splice(newPos, 0, subscription);
-    FilterNotifier.emit("subscription.moved", subscription);
+    filterNotifier.emit("subscription.moved", subscription);
   },
 
   /**
    * Replaces the list of filters in a subscription by a new list
    * @param {Subscription} subscription filter subscription to be updated
    * @param {Filter[]} filters new filter list
    */
   updateSubscriptionFilters(subscription, filters)
   {
     removeSubscriptionFilters(subscription);
     subscription.oldFilters = subscription.filters;
     subscription.filters = filters;
     addSubscriptionFilters(subscription);
-    FilterNotifier.emit("subscription.updated", subscription);
+    filterNotifier.emit("subscription.updated", subscription);
     delete subscription.oldFilters;
   },
 
   /**
    * Adds a user-defined filter to the list
    * @param {Filter} filter
    * @param {SpecialSubscription} [subscription]
    *   particular group that the filter should be added to
@@ -234,17 +234,17 @@
       return;
     }
 
     if (typeof position == "undefined")
       position = subscription.filters.length;
 
     filter.subscriptions.add(subscription);
     subscription.filters.splice(position, 0, filter);
-    FilterNotifier.emit("filter.added", filter, subscription, position);
+    filterNotifier.emit("filter.added", filter, subscription, position);
   },
 
   /**
    * Removes a user-defined filter from the list
    * @param {Filter} filter
    * @param {SpecialSubscription} [subscription] a particular filter group that
    *      the filter should be removed from (if ommited will be removed from all
    *      subscriptions)
@@ -277,17 +277,17 @@
         for (let j = positions.length - 1; j >= 0; j--)
         {
           let currentPosition = positions[j];
           if (currentSubscription.filters[currentPosition] == filter)
           {
             currentSubscription.filters.splice(currentPosition, 1);
             if (currentSubscription.filters.indexOf(filter) < 0)
               filter.subscriptions.delete(currentSubscription);
-            FilterNotifier.emit("filter.removed", filter, currentSubscription,
+            filterNotifier.emit("filter.removed", filter, currentSubscription,
                                 currentPosition);
           }
         }
       }
     }
   },
 
   /**
@@ -308,17 +308,17 @@
 
     newPosition = Math.min(Math.max(newPosition, 0),
                            subscription.filters.length - 1);
     if (oldPosition == newPosition)
       return;
 
     subscription.filters.splice(oldPosition, 1);
     subscription.filters.splice(newPosition, 0, filter);
-    FilterNotifier.emit("filter.moved", filter, subscription, oldPosition,
+    filterNotifier.emit("filter.moved", filter, subscription, oldPosition,
                         newPosition);
   },
 
   /**
    * Increases the hit count for a filter by one
    * @param {Filter} filter
    */
   increaseHitCount(filter)
@@ -375,17 +375,17 @@
 
         this.fileProperties = parser.fileProperties;
         this.subscriptions = parser.subscriptions;
         this.knownSubscriptions = knownSubscriptions;
         Filter.knownFilters = parser.knownFilters;
         Subscription.knownSubscriptions = parser.knownSubscriptions;
 
         if (!silent)
-          FilterNotifier.emit("load");
+          filterNotifier.emit("load");
       }
     };
   },
 
   /**
    * Loads all subscriptions from the disk.
    * @return {Promise} promise resolved or rejected when loading is complete
    */
@@ -423,17 +423,17 @@
       });
     }).catch(error =>
     {
       Cu.reportError(error);
       return tryBackup(1);
     }).then(() =>
     {
       this.initialized = true;
-      FilterNotifier.emit("load");
+      filterNotifier.emit("load");
     });
   },
 
   /**
    * Constructs the file name for a patterns.ini backup.
    * @param {number} backupIndex
    *    number of the backup file (1 being the most recent)
    * @return {string} backup file name
@@ -591,17 +591,17 @@
     {
       // Errors during backup creation shouldn't prevent writing filters.
       Cu.reportError(error);
     }).then(() =>
     {
       return IO.writeToFile(this.sourceFile, this.exportData());
     }).then(() =>
     {
-      FilterNotifier.emit("save");
+      filterNotifier.emit("save");
     }).catch(error =>
     {
       // If saving failed, report error but continue - we still have to process
       // flags.
       Cu.reportError(error);
     }).then(() =>
     {
       this._saving = false;
Index: lib/subscriptionClasses.js
===================================================================
--- a/lib/subscriptionClasses.js
+++ b/lib/subscriptionClasses.js
@@ -18,17 +18,17 @@
 "use strict";
 
 /**
  * @fileOverview Definition of Subscription class and its subclasses.
  */
 
 const {ActiveFilter, BlockingFilter,
        WhitelistFilter, ElemHideBase} = require("./filterClasses");
-const {FilterNotifier} = require("./filterNotifier");
+const {filterNotifier} = require("./filterNotifier");
 const {extend} = require("./coreUtils");
 
 /**
  * Abstract base class for filter subscriptions
  *
  * @param {string} url    download location of the subscription
  * @param {string} [title]  title of the filter subscription
  * @constructor
@@ -76,17 +76,17 @@
     return this._title;
   },
   set title(value)
   {
     if (value != this._title)
     {
       let oldValue = this._title;
       this._title = value;
-      FilterNotifier.emit("subscription.title", this, value, oldValue);
+      filterNotifier.emit("subscription.title", this, value, oldValue);
     }
     return this._title;
   },
 
   /**
    * Determines whether the title should be editable
    * @type {boolean}
    */
@@ -95,17 +95,17 @@
     return this._fixedTitle;
   },
   set fixedTitle(value)
   {
     if (value != this._fixedTitle)
     {
       let oldValue = this._fixedTitle;
       this._fixedTitle = value;
-      FilterNotifier.emit("subscription.fixedTitle", this, value, oldValue);
+      filterNotifier.emit("subscription.fixedTitle", this, value, oldValue);
     }
     return this._fixedTitle;
   },
 
   /**
    * Defines whether the filters in the subscription should be disabled
    * @type {boolean}
    */
@@ -114,17 +114,17 @@
     return this._disabled;
   },
   set disabled(value)
   {
     if (value != this._disabled)
     {
       let oldValue = this._disabled;
       this._disabled = value;
-      FilterNotifier.emit("subscription.disabled", this, value, oldValue);
+      filterNotifier.emit("subscription.disabled", this, value, oldValue);
     }
     return this._disabled;
   },
 
   /**
    * Serializes the subscription to an array of strings for writing
    * out on the disk.
    * @param {string[]} buffer  buffer to push the serialization results into
@@ -365,17 +365,17 @@
     return this._homepage;
   },
   set homepage(value)
   {
     if (value != this._homepage)
     {
       let oldValue = this._homepage;
       this._homepage = value;
-      FilterNotifier.emit("subscription.homepage", this, value, oldValue);
+      filterNotifier.emit("subscription.homepage", this, value, oldValue);
     }
     return this._homepage;
   },
 
   /**
    * Time of the last subscription download (in seconds since the
    * beginning of the epoch)
    * @type {number}
@@ -385,17 +385,17 @@
     return this._lastDownload;
   },
   set lastDownload(value)
   {
     if (value != this._lastDownload)
     {
       let oldValue = this._lastDownload;
       this._lastDownload = value;
-      FilterNotifier.emit("subscription.lastDownload", this, value, oldValue);
+      filterNotifier.emit("subscription.lastDownload", this, value, oldValue);
     }
     return this._lastDownload;
   },
 
   /**
    * See Subscription.serialize()
    * @inheritdoc
    */
@@ -460,17 +460,17 @@
   get downloadStatus()
   {
     return this._downloadStatus;
   },
   set downloadStatus(value)
   {
     let oldValue = this._downloadStatus;
     this._downloadStatus = value;
-    FilterNotifier.emit("subscription.downloadStatus", this, value, oldValue);
+    filterNotifier.emit("subscription.downloadStatus", this, value, oldValue);
     return this._downloadStatus;
   },
 
   /**
    * Time of the last successful download (in seconds since the beginning of the
    * epoch).
    */
   lastSuccess: 0,
@@ -487,17 +487,17 @@
     return this._lastCheck;
   },
   set lastCheck(value)
   {
     if (value != this._lastCheck)
     {
       let oldValue = this._lastCheck;
       this._lastCheck = value;
-      FilterNotifier.emit("subscription.lastCheck", this, value, oldValue);
+      filterNotifier.emit("subscription.lastCheck", this, value, oldValue);
     }
     return this._lastCheck;
   },
 
   /**
    * Hard expiration time of the filter subscription (in seconds since
    * the beginning of the epoch)
    * @type {number}
@@ -520,17 +520,17 @@
     return this._errors;
   },
   set errors(value)
   {
     if (value != this._errors)
     {
       let oldValue = this._errors;
       this._errors = value;
-      FilterNotifier.emit("subscription.errors", this, value, oldValue);
+      filterNotifier.emit("subscription.errors", this, value, oldValue);
     }
     return this._errors;
   },
 
   /**
    * Version of the subscription data retrieved on last successful download
    * @type {number}
    */
Index: lib/synchronizer.js
===================================================================
--- a/lib/synchronizer.js
+++ b/lib/synchronizer.js
@@ -21,17 +21,17 @@
  * @fileOverview Manages synchronization of filter subscriptions.
  */
 
 const {Downloader, Downloadable,
        MILLIS_IN_SECOND, MILLIS_IN_MINUTE,
        MILLIS_IN_HOUR, MILLIS_IN_DAY} = require("./downloader");
 const {Filter} = require("./filterClasses");
 const {FilterStorage} = require("./filterStorage");
-const {FilterNotifier} = require("./filterNotifier");
+const {filterNotifier} = require("./filterNotifier");
 const {Prefs} = require("prefs");
 const {Subscription,
        DownloadableSubscription} = require("./subscriptionClasses");
 
 const INITIAL_DELAY = 1 * MILLIS_IN_MINUTE;
 const CHECK_INTERVAL = 1 * MILLIS_IN_HOUR;
 const DEFAULT_EXPIRATION_INTERVAL = 5 * MILLIS_IN_DAY;
 
@@ -136,17 +136,17 @@
     subscription.expires = Math.round(
       downloadable.hardExpiration / MILLIS_IN_SECOND
     );
   },
 
   _onDownloadStarted(downloadable)
   {
     let subscription = Subscription.fromURL(downloadable.url);
-    FilterNotifier.emit("subscription.downloading", subscription);
+    filterNotifier.emit("subscription.downloading", subscription);
   },
 
   _onDownloadSuccess(downloadable, responseText, errorCallback,
                      redirectCallback)
   {
     let lines = responseText.split(/[\r\n]+/);
     let headerMatch = /\[Adblock(?:\s*Plus\s*([\d.]+)?)?\]/i.exec(lines[0]);
     if (!headerMatch)
Index: test/filterNotifier.js
===================================================================
--- a/test/filterNotifier.js
+++ b/test/filterNotifier.js
@@ -14,49 +14,49 @@
  * You should have received a copy of the GNU General Public License
  * along with Adblock Plus.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 "use strict";
 
 const {createSandbox} = require("./_common");
 
-let FilterNotifier = null;
+let filterNotifier = null;
 
 exports.setUp = function(callback)
 {
   let sandboxedRequire = createSandbox();
   (
-    {FilterNotifier} = sandboxedRequire("../lib/filterNotifier")
+    {filterNotifier} = sandboxedRequire("../lib/filterNotifier")
   );
 
   callback();
 };
 
 let triggeredListeners = [];
 let listeners = [
   (...args) => triggeredListeners.push(["listener1", ...args]),
   (...args) => triggeredListeners.push(["listener2", ...args]),
   (...args) => triggeredListeners.push(["listener3", ...args])
 ];
 
 function addListener(listener)
 {
-  FilterNotifier.on("foo", listener);
+  filterNotifier.on("foo", listener);
 }
 
 function removeListener(listener)
 {
-  FilterNotifier.off("foo", listener);
+  filterNotifier.off("foo", listener);
 }
 
 function compareListeners(test, testDescription, list)
 {
   let result1 = triggeredListeners = [];
-  FilterNotifier.emit("foo", {bar: true});
+  filterNotifier.emit("foo", {bar: true});
 
   let result2 = triggeredListeners = [];
   for (let observer of list)
     observer({bar: true});
 
   test.deepEqual(result1, result2, testDescription);
 }
 
Index: test/filterStorage.js
===================================================================
--- a/test/filterStorage.js
+++ b/test/filterStorage.js
@@ -15,50 +15,50 @@
  * along with Adblock Plus.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 "use strict";
 
 const {createSandbox} = require("./_common");
 
 let Filter = null;
-let FilterNotifier = null;
+let filterNotifier = null;
 let FilterStorage = null;
 let Subscription = null;
 
 exports.setUp = function(callback)
 {
   let sandboxedRequire = createSandbox();
 
   sandboxedRequire("../lib/filterListener");
   (
     {Filter} = sandboxedRequire("../lib/filterClasses"),
-    {FilterNotifier} = sandboxedRequire("../lib/filterNotifier"),
+    {filterNotifier} = sandboxedRequire("../lib/filterNotifier"),
     {FilterStorage} = sandboxedRequire("../lib/filterStorage"),
     {Subscription} = sandboxedRequire("../lib/subscriptionClasses")
   );
 
   callback();
 };
 
 function addListener(listener)
 {
   let makeWrapper = name => (...args) => listener(name, ...args);
 
-  FilterNotifier.on("subscription.added", makeWrapper("subscription.added"));
-  FilterNotifier.on("subscription.removed",
+  filterNotifier.on("subscription.added", makeWrapper("subscription.added"));
+  filterNotifier.on("subscription.removed",
                     makeWrapper("subscription.removed"));
-  FilterNotifier.on("subscription.moved", makeWrapper("subscription.moved"));
+  filterNotifier.on("subscription.moved", makeWrapper("subscription.moved"));
 
-  FilterNotifier.on("filter.added", makeWrapper("filter.added"));
-  FilterNotifier.on("filter.removed", makeWrapper("filter.removed"));
-  FilterNotifier.on("filter.moved", makeWrapper("filter.moved"));
+  filterNotifier.on("filter.added", makeWrapper("filter.added"));
+  filterNotifier.on("filter.removed", makeWrapper("filter.removed"));
+  filterNotifier.on("filter.moved", makeWrapper("filter.moved"));
 
-  FilterNotifier.on("filter.hitCount", makeWrapper("filter.hitCount"));
-  FilterNotifier.on("filter.lastHit", makeWrapper("filter.lastHit"));
+  filterNotifier.on("filter.hitCount", makeWrapper("filter.hitCount"));
+  filterNotifier.on("filter.lastHit", makeWrapper("filter.lastHit"));
 }
 
 function compareSubscriptionList(test, testMessage, list,
                                  knownSubscriptions = null)
 {
   let result = FilterStorage.subscriptions.map(subscription => subscription.url);
   let expected = list.map(subscription => subscription.url);
   test.deepEqual(result, expected, testMessage);
