diff --git a/src/common/architecture/dependenciesProvider/DependenciesProvider.ts b/src/common/architecture/dependenciesProvider/DependenciesProvider.ts
new file mode 100644
index 0000000..132a67c
--- /dev/null
+++ b/src/common/architecture/dependenciesProvider/DependenciesProvider.ts
@@ -0,0 +1,55 @@
+import AutoRefresh from '../../../features/autoRefresh/core/autoRefresh';
+
+export const AutoRefreshDependency = 'autoRefresh';
+export const DependenciesToClass = {
+  [AutoRefreshDependency]: AutoRefresh,
+};
+
+interface OurWindow extends Window {
+  TWPTDependencies?: Dependencies;
+}
+
+type Dependencies = {
+  [K in Dependency]?: InstanceType<(typeof DependenciesToClass)[K]>;
+};
+
+export type Dependency = keyof typeof DependenciesToClass;
+
+class DependenciesProvider {
+  private dependencies: Dependencies;
+
+  constructor() {
+    const ourWindow = window as OurWindow;
+    if (!ourWindow.TWPTDependencies) {
+      ourWindow.TWPTDependencies = {};
+    }
+    this.dependencies = ourWindow.TWPTDependencies;
+  }
+
+  getDependency(dependency: Dependency) {
+    this.setUpDependency(dependency);
+    return this.dependencies[dependency];
+  }
+
+  setUpDependency(dependency: Dependency): void {
+    if (!this.dependencies[dependency]) {
+      this.dependencies[dependency] = new DependenciesToClass[dependency]();
+    }
+  }
+}
+
+export default class DependenciesProviderSingleton {
+  private static instance: DependenciesProvider;
+
+  /**
+   * @see {@link DependenciesProviderSingleton.getInstance}
+   */
+  private constructor() {}
+
+  public static getInstance(): DependenciesProvider {
+    if (!DependenciesProviderSingleton.instance) {
+      DependenciesProviderSingleton.instance = new DependenciesProvider();
+    }
+    return DependenciesProviderSingleton.instance;
+  }
+}
diff --git a/src/common/architecture/scripts/setUpDependencies/SetUpDependenciesScript.ts b/src/common/architecture/scripts/setUpDependencies/SetUpDependenciesScript.ts
new file mode 100644
index 0000000..b5ff6f0
--- /dev/null
+++ b/src/common/architecture/scripts/setUpDependencies/SetUpDependenciesScript.ts
@@ -0,0 +1,13 @@
+import DependenciesProviderSingleton, { Dependency } from "../../dependenciesProvider/DependenciesProvider";
+import Script from "../Script";
+
+export default abstract class SetUpDependenciesScript extends Script {
+  abstract dependencies: Dependency[];
+
+  execute() {
+    const dependenciesProvider = DependenciesProviderSingleton.getInstance();
+    this.dependencies.forEach(dependency => {
+      dependenciesProvider.setUpDependency(dependency);
+    });
+  }
+}
