diff --git a/src/features/Features.ts b/src/features/Features.ts
index 6bd74b0..d0861c5 100644
--- a/src/features/Features.ts
+++ b/src/features/Features.ts
@@ -1,5 +1,4 @@
 import Feature from '../common/architecture/features/Feature';
-import InfiniteScrollFeature from './infiniteScroll/infiniteScroll.feature';
 import ScriptFilterListProvider from '../common/architecture/scripts/ScriptFilterListProvider';
 import ExtraInfoFeature from './extraInfo/extraInfo.feature';
 import WorkflowsFeature from './workflows/workflows.feature';
@@ -11,7 +10,6 @@
 export default class Features extends ScriptFilterListProvider {
   private features: ConcreteFeatureClass[] = [
     ExtraInfoFeature,
-    InfiniteScrollFeature,
     InteropThreadPageFeature,
     LoadDraftsFeature,
     WorkflowsFeature,
diff --git a/src/features/infiniteScroll/infiniteScroll.feature.ts b/src/features/infiniteScroll/infiniteScroll.feature.ts
deleted file mode 100644
index b6dee6a..0000000
--- a/src/features/infiniteScroll/infiniteScroll.feature.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import Feature from '../../common/architecture/features/Feature';
-import { ConcreteScript } from '../../common/architecture/scripts/Script';
-import { OptionCodename } from '../../common/options/optionsPrototype';
-import CCInfiniteScrollScript from './scripts/ccInfiniteScroll.script';
-
-export default class InfiniteScrollFeature extends Feature {
-  public readonly scripts: ConcreteScript[] = [CCInfiniteScrollScript];
-
-  readonly codename = 'infiniteScroll';
-  readonly relatedOptions: OptionCodename[] = ['list', 'thread', 'threadall'];
-}
diff --git a/src/features/infiniteScroll/nodeWatcherHandlers/ccInfiniteScrollLoadMoreBar.handler.ts b/src/features/infiniteScroll/nodeWatcherHandlers/ccInfiniteScrollLoadMoreBar.handler.ts
index 5c2d308..d1068e3 100644
--- a/src/features/infiniteScroll/nodeWatcherHandlers/ccInfiniteScrollLoadMoreBar.handler.ts
+++ b/src/features/infiniteScroll/nodeWatcherHandlers/ccInfiniteScrollLoadMoreBar.handler.ts
@@ -1,10 +1,14 @@
 import { NodeMutation } from '../../../presentation/nodeWatcher/NodeWatcherHandler';
-import CssSelectorNodeWatcherScriptHandler from '../../../common/architecture/scripts/nodeWatcher/handlers/CssSelectorNodeWatcherScriptHandler';
-import { InfiniteScrollNodeWatcherOptions } from '../scripts/ccInfiniteScroll.script';
+import CCInfiniteScroll from '../core/ccInfiniteScroll';
+import CssSelectorNodeWatcherHandler from '../../../infrastructure/presentation/nodeWatcher/handlers/CssSelectorHandler.adapter';
 
-export default class CCInfiniteScrollLoadMoreBarHandler extends CssSelectorNodeWatcherScriptHandler<InfiniteScrollNodeWatcherOptions> {
+export default class CCInfiniteScrollLoadMoreBarHandler extends CssSelectorNodeWatcherHandler {
   cssSelector = '.load-more-bar';
 
+  constructor(private ccInfiniteScroll: CCInfiniteScroll) {
+    super();
+  }
+
   onMutatedNode({ node }: NodeMutation) {
     if (!(node instanceof Element)) {
       console.error(
@@ -13,6 +17,6 @@
       );
       return;
     }
-    this.options.ccInfiniteScroll.observeLoadMoreBar(node);
+    this.ccInfiniteScroll.observeLoadMoreBar(node);
   }
 }
diff --git a/src/features/infiniteScroll/nodeWatcherHandlers/ccInfiniteScrollLoadMoreBtn.handler.ts b/src/features/infiniteScroll/nodeWatcherHandlers/ccInfiniteScrollLoadMoreBtn.handler.ts
index 1ab8644..0dd8db6 100644
--- a/src/features/infiniteScroll/nodeWatcherHandlers/ccInfiniteScrollLoadMoreBtn.handler.ts
+++ b/src/features/infiniteScroll/nodeWatcherHandlers/ccInfiniteScrollLoadMoreBtn.handler.ts
@@ -1,11 +1,15 @@
 import { NodeMutation } from '../../../presentation/nodeWatcher/NodeWatcherHandler';
-import CssSelectorNodeWatcherScriptHandler from '../../../common/architecture/scripts/nodeWatcher/handlers/CssSelectorNodeWatcherScriptHandler';
-import { InfiniteScrollNodeWatcherOptions } from '../scripts/ccInfiniteScroll.script';
+import CssSelectorNodeWatcherHandler from '../../../infrastructure/presentation/nodeWatcher/handlers/CssSelectorHandler.adapter';
+import CCInfiniteScroll from '../core/ccInfiniteScroll';
 
-export default class CCInfiniteScrollLoadMoreBtnHandler extends CssSelectorNodeWatcherScriptHandler<InfiniteScrollNodeWatcherOptions> {
+export default class CCInfiniteScrollLoadMoreBtnHandler extends CssSelectorNodeWatcherHandler {
   cssSelector =
     '.scTailwindThreadMorebuttonbutton, .scTailwindThreadMessagegapbutton';
 
+  constructor(private ccInfiniteScroll: CCInfiniteScroll) {
+    super();
+  }
+
   onMutatedNode({ node }: NodeMutation) {
     if (!(node instanceof Element)) {
       console.error(
@@ -14,6 +18,6 @@
       );
       return;
     }
-    this.options.ccInfiniteScroll.observeLoadMoreInteropBtn(node);
+    this.ccInfiniteScroll.observeLoadMoreInteropBtn(node);
   }
 }
diff --git a/src/features/infiniteScroll/nodeWatcherHandlers/ccInfiniteScrollSetUp.handler.ts b/src/features/infiniteScroll/nodeWatcherHandlers/ccInfiniteScrollSetUp.handler.ts
index b36e0b9..0d77cf7 100644
--- a/src/features/infiniteScroll/nodeWatcherHandlers/ccInfiniteScrollSetUp.handler.ts
+++ b/src/features/infiniteScroll/nodeWatcherHandlers/ccInfiniteScrollSetUp.handler.ts
@@ -1,16 +1,17 @@
 import { NodeMutation } from '../../../presentation/nodeWatcher/NodeWatcherHandler';
-import CssSelectorNodeWatcherScriptHandler from '../../../common/architecture/scripts/nodeWatcher/handlers/CssSelectorNodeWatcherScriptHandler';
-import { InfiniteScrollNodeWatcherOptions } from '../scripts/ccInfiniteScroll.script';
+import CssSelectorNodeWatcherHandler from '../../../infrastructure/presentation/nodeWatcher/handlers/CssSelectorHandler.adapter';
+import CCInfiniteScroll from '../core/ccInfiniteScroll';
 
-export default class CCInfiniteScrollSetUpHandler extends CssSelectorNodeWatcherScriptHandler<InfiniteScrollNodeWatcherOptions> {
+export default class CCInfiniteScrollSetUpHandler extends CssSelectorNodeWatcherHandler {
   cssSelector = 'ec-app, .scrollable-content';
 
+  constructor(private ccInfiniteScroll: CCInfiniteScroll) {
+    super();
+  }
+
   onMutatedNode({ node }: NodeMutation) {
     if (!(node instanceof Element)) return;
     const isScrollableContent = node.classList.contains('scrollable-content');
-    this.options.ccInfiniteScroll.setUpIntersectionObserver(
-      node,
-      isScrollableContent,
-    );
+    this.ccInfiniteScroll.setUpIntersectionObserver(node, isScrollableContent);
   }
 }
diff --git a/src/features/infiniteScroll/scripts/ccInfiniteScroll.script.ts b/src/features/infiniteScroll/scripts/ccInfiniteScroll.script.ts
deleted file mode 100644
index e12a7c4..0000000
--- a/src/features/infiniteScroll/scripts/ccInfiniteScroll.script.ts
+++ /dev/null
@@ -1,31 +0,0 @@
-import {
-  ScriptEnvironment,
-  ScriptPage,
-  ScriptRunPhase,
-} from '../../../common/architecture/scripts/Script';
-import LegacyNodeWatcherScript from '../../../common/architecture/scripts/nodeWatcher/LegacyNodeWatcherScript';
-import CCInfiniteScroll from '../core/ccInfiniteScroll';
-import CCInfiniteScrollLoadMoreBarHandler from '../nodeWatcherHandlers/ccInfiniteScrollLoadMoreBar.handler';
-import CCInfiniteScrollLoadMoreBtnHandler from '../nodeWatcherHandlers/ccInfiniteScrollLoadMoreBtn.handler';
-import CCInfiniteScrollSetUpHandler from '../nodeWatcherHandlers/ccInfiniteScrollSetUp.handler';
-
-export interface InfiniteScrollNodeWatcherOptions {
-  ccInfiniteScroll: CCInfiniteScroll;
-}
-
-export default class CCInfiniteScrollScript extends LegacyNodeWatcherScript<InfiniteScrollNodeWatcherOptions> {
-  page = ScriptPage.CommunityConsole;
-  environment = ScriptEnvironment.ContentScript;
-  runPhase = ScriptRunPhase.Main;
-  handlers = new Map([
-    ['ccInfiniteScrollSetUp', CCInfiniteScrollSetUpHandler],
-    ['ccInfiniteScrollLoadMoreBar', CCInfiniteScrollLoadMoreBarHandler],
-    ['ccInfiniteScrollLoadMoreBtn', CCInfiniteScrollLoadMoreBtnHandler],
-  ]);
-
-  protected optionsFactory(): InfiniteScrollNodeWatcherOptions {
-    return {
-      ccInfiniteScroll: new CCInfiniteScroll(),
-    };
-  }
-}
