diff --git a/js/feedlist.js b/js/feedlist.js
index c2a0e816d..a95a82672 100644
--- a/js/feedlist.js
+++ b/js/feedlist.js
@@ -1,8 +1,5 @@
 let counters_last_request = 0;
 
-const Counters = {
-};
-
 const Feeds = {
 	_active_feed_id: 0,
 	_active_feed_is_cat: false,
@@ -69,23 +66,23 @@ const Feeds = {
 				continue;
 			}
 
-			/*if (Feeds.getFeedUnread(id, (kind == "cat")) != ctr ||
+			/*if (this.getFeedUnread(id, (kind == "cat")) != ctr ||
 					(kind == "cat")) {
 			}*/
 
-			Feeds.setFeedUnread(id, (kind == "cat"), ctr);
-			Feeds.setFeedValue(id, (kind == "cat"), 'auxcounter', auxctr);
+			this.setFeedUnread(id, (kind == "cat"), ctr);
+			this.setFeedValue(id, (kind == "cat"), 'auxcounter', auxctr);
 
 			if (kind != "cat") {
-				Feeds.setFeedValue(id, false, 'error', error);
-				Feeds.setFeedValue(id, false, 'updated', updated);
+				this.setFeedValue(id, false, 'error', error);
+				this.setFeedValue(id, false, 'updated', updated);
 
 				if (id > 0) {
 					if (has_img) {
-						Feeds.setFeedIcon(id, false,
+						this.setFeedIcon(id, false,
 							getInitParam("icons_url") + "/" + id + ".ico?" + has_img);
 					} else {
-						Feeds.setFeedIcon(id, false, 'images/blank_icon.gif');
+						this.setFeedIcon(id, false, 'images/blank_icon.gif');
 					}
 				}
 			}
@@ -98,13 +95,13 @@ const Feeds = {
 		console.log("viewCurrentFeed: " + method);
 
 		if (this.getActiveFeedId() != undefined) {
-			this.viewfeed({feed: Feeds.getActiveFeedId(), is_cat: Feeds.activeFeedIsCat(), method: method});
+			this.viewfeed({feed: this.getActiveFeedId(), is_cat: this.activeFeedIsCat(), method: method});
 		}
 		return false; // block unneeded form submits
 	},
 	openNextUnreadFeed: function() {
-		const is_cat = Feeds.activeFeedIsCat();
-		const nuf = Feeds.getNextUnreadFeed(Feeds.getActiveFeedId(), is_cat);
+		const is_cat = this.activeFeedIsCat();
+		const nuf = this.getNextUnreadFeed(this.getActiveFeedId(), is_cat);
 		if (nuf) this.viewfeed({feed: nuf, is_cat: is_cat});
 	},
 	collapseFeedlist: function() {
@@ -118,7 +115,7 @@ const Feeds = {
 	},
 	cancelSearch: function() {
 		this._search_query = "";
-		Feeds.viewCurrentFeed();
+		this.viewCurrentFeed();
 	},
 	requestCounters: function(force) {
 		const date = new Date();
@@ -172,7 +169,7 @@ const Feeds = {
 					const id = String(item.id);
 					const is_cat = id.match("^CAT:");
 					const feed = id.substr(id.indexOf(":") + 1);
-					Feeds.viewfeed({feed: feed, is_cat: is_cat});
+					this.viewfeed({feed: feed, is_cat: is_cat});
 					return false;
 				},
 				openOnClick: false,
@@ -305,7 +302,7 @@ const Feeds = {
 		// this is used to quickly switch between feeds, sets active but xhr is on a timeout
 		const delayed = params.delayed || false;
 
-		if (feed != Feeds.getActiveFeedId() || Feeds.activeFeedIsCat() != is_cat) {
+		if (feed != this.getActiveFeedId() || this.activeFeedIsCat() != is_cat) {
 			this._search_query = false;
 			setActiveArticleId(0);
 		}
@@ -350,20 +347,20 @@ const Feeds = {
 			if (vgroup_last_feed) {
 				query.vgrlf = vgroup_last_feed;
 			}
-		} else if (!is_cat && feed == Feeds.getActiveFeedId() && !params.method) {
+		} else if (!is_cat && feed == this.getActiveFeedId() && !params.method) {
 			query.m = "ForceUpdate";
 		}
 
 		Form.enable("main_toolbar_form");
 
 		if (!delayed)
-			if (!Feeds.setFeedExpandoIcon(feed, is_cat,
+			if (!this.setFeedExpandoIcon(feed, is_cat,
 				(is_cat) ? 'images/indicator_tiny.gif' : 'images/indicator_white.gif'))
 				notify_progress("Loading, please wait...", true);
 
 		query.cat = is_cat;
 
-		Feeds.setActiveFeedId(feed, is_cat);
+		this.setActiveFeedId(feed, is_cat);
 
 		if (viewfeed_debug) {
 			window.open("backend.php?" +
@@ -377,7 +374,7 @@ const Feeds = {
 			catchupBatchedArticles(() => {
 				xhrPost("backend.php", query, (transport) => {
 					try {
-						Feeds.setFeedExpandoIcon(feed, is_cat, 'images/blank_icon.gif');
+						this.setFeedExpandoIcon(feed, is_cat, 'images/blank_icon.gif');
 						Headlines.onLoaded(transport, offset);
 						PluginHost.run(PluginHost.HOOK_FEED_LOADED, [feed, is_cat]);
 					} catch (e) {
@@ -404,21 +401,21 @@ const Feeds = {
 		}
 	},
 	decrementFeedCounter: function(feed, is_cat) {
-		let ctr = Feeds.getFeedUnread(feed, is_cat);
+		let ctr = this.getFeedUnread(feed, is_cat);
 
 		if (ctr > 0) {
-			Feeds.setFeedUnread(feed, is_cat, ctr - 1);
+			this.setFeedUnread(feed, is_cat, ctr - 1);
 			App.global_unread -= 1;
 			App.updateTitle();
 
 			if (!is_cat) {
-				const cat = parseInt(Feeds.getFeedCategory(feed));
+				const cat = parseInt(this.getFeedCategory(feed));
 
 				if (!isNaN(cat)) {
-					ctr = Feeds.getFeedUnread(cat, true);
+					ctr = this.getFeedUnread(cat, true);
 
 					if (ctr > 0) {
-						Feeds.setFeedUnread(cat, true, ctr - 1);
+						this.setFeedUnread(cat, true, ctr - 1);
 					}
 				}
 			}
@@ -444,7 +441,7 @@ const Feeds = {
 		}
 
 		const mark_what = last_search_query && last_search_query[0] ? __("search results") : __("all articles");
-		const fn = Feeds.getFeedName(feed, is_cat);
+		const fn = this.getFeedName(feed, is_cat);
 
 		str = str.replace("%s", fn)
 			.replace("%w", mark_what);
@@ -467,12 +464,12 @@ const Feeds = {
 			const show_next_feed = getInitParam("on_catchup_show_next_feed") == "1";
 
 			if (show_next_feed) {
-				const nuf = Feeds.getNextUnreadFeed(feed, is_cat);
+				const nuf = this.getNextUnreadFeed(feed, is_cat);
 
 				if (nuf) {
 					this.viewfeed({feed: nuf, is_cat: is_cat});
 				}
-			} else if (feed == Feeds.getActiveFeedId() && is_cat == Feeds.activeFeedIsCat()) {
+			} else if (feed == this.getActiveFeedId() && is_cat == this.activeFeedIsCat()) {
 				this.viewCurrentFeed();
 			}
 
@@ -480,10 +477,10 @@ const Feeds = {
 		});
 	},
 	catchupCurrentFeed: function(mode) {
-		Feeds.catchupFeed(Feeds.getActiveFeedId(), Feeds.activeFeedIsCat(), mode);
+		this.catchupFeed(this.getActiveFeedId(), this.activeFeedIsCat(), mode);
 	},
 	catchupFeedInGroup: function(id) {
-		const title = Feeds.getFeedName(id);
+		const title = this.getFeedName(id);
 
 		const str = __("Mark all articles in %s as read?").replace("%s", title);