diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..4e97e6d
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+console_inject_deprecated.js
diff --git a/_locales/ca/messages.json b/_locales/ca/messages.json
index 871cfb0..d44063b 100644
--- a/_locales/ca/messages.json
+++ b/_locales/ca/messages.json
@@ -12,7 +12,11 @@
     "description": "Feature checkbox in the options page"
   },
   "options_thread": {
-    "message": "Activa el scroll infinit dins dels fils.",
+    "message": "Carrega automàticament missatges en grups petits quan facis scroll per un fil.",
+    "description": "Feature checkbox in the options page"
+  },
+  "options_threadall": {
+    "message": "Carrega automàticament tots els missatges de cop quan facis scroll per un fil.",
     "description": "Feature checkbox in the options page"
   },
   "options_enhancements": {
@@ -27,6 +31,10 @@
     "message": "Redirigeix tots els fils oberts a TW a la Consola de la Comunitat.",
     "description": "Feature checkbox in the options page"
   },
+  "options_loaddrafts": {
+    "message": "Activa la <i>flag><\/i> <code class=\"help\" title=\"Aquesta flag permet a la Consola de la Comunitat carregar una resposta automàticament desada anteriorment quan obres un fil i fas clic al botó de respondre.\">enableLoadingDraftMessages<\/code> de la Consola de la Comunitat.",
+    "description": "Feature checkbox in the options page"
+  },
   "options_experimental_label": {
     "message": "(experimental)",
     "description": "Label which is placed next to an option to indicate that it may not work well or may break at any time"
@@ -47,4 +55,4 @@
     "message": "Historial de publicacions",
     "description": "Link shown in a user profile (in TW and the Community Console) which points to a search showing the user's posts and messages"
   }
-}
+}
\ No newline at end of file
diff --git a/_locales/en/messages.json b/_locales/en/messages.json
index 905c210..2592504 100644
--- a/_locales/en/messages.json
+++ b/_locales/en/messages.json
@@ -12,7 +12,11 @@
     "description": "Feature checkbox in the options page"
   },
   "options_thread": {
-    "message": "Enable infinite scrolling inside threads.",
+    "message": "Automatically load batches of messages inside threads when scrolling down.",
+    "description": "Feature checkbox in the options page"
+  },
+  "options_threadall": {
+    "message": "Automatically load all messages at once inside threads when scrolling down.",
     "description": "Feature checkbox in the options page"
   },
   "options_enhancements": {
@@ -27,6 +31,10 @@
     "message": "Redirect all threads opened in TW to the Community Console.",
     "description": "Feature checkbox in the options page"
   },
+  "options_loaddrafts":{
+    "message": "Activate the <code class=\"help\" title=\"This flag allows the Community Console to load a previously autosaved reply when loading a thread and clicking the reply button.\">enableLoadingDraftMessages</code> Community Console flag.",
+    "description": "Feature checkbox in the options page"
+  },
   "options_experimental_label": {
     "message": "(experimental)",
     "description": "Label which is placed next to an option to indicate that it may not work well or may break at any time"
diff --git a/_locales/es/messages.json b/_locales/es/messages.json
index 328cff1..97adb10 100644
--- a/_locales/es/messages.json
+++ b/_locales/es/messages.json
@@ -12,7 +12,11 @@
     "description": "Feature checkbox in the options page"
   },
   "options_thread": {
-    "message": "Activa el scroll infinito dentro de los hilos.",
+    "message": "Carga automáticamente mensajes en grupos pequeños cuando hagas scroll por un hilo.",
+    "description": "Feature checkbox in the options page"
+  },
+  "options_threadall": {
+    "message": "Carga automáticamente todos los mensajes a la vez cuando hagas scroll por un hilo.",
     "description": "Feature checkbox in the options page"
   },
   "options_enhancements": {
@@ -27,6 +31,10 @@
     "message": "Redirige todos los hilos abiertos en TW a la Consola de la Comunidad.",
     "description": "Feature checkbox in the options page"
   },
+  "options_loaddrafts":{
+    "message": "Activa la <i>flag></i> <code class=\"help\" title=\"Esta flag permite a la Consola de la Comunidad cargar una respuesta previamente autoguardada cuando abres un hilo y haces clic en el botón de responder.\">enableLoadingDraftMessages</code> de la Consola de la Comunidad.",
+    "description": "Feature checkbox in the options page"
+  },
   "options_experimental_label": {
     "message": "(experimental)",
     "description": "Label which is placed next to an option to indicate that it may not work well or may break at any time"
diff --git a/background.js b/background.js
index de7c93e..d518431 100644
--- a/background.js
+++ b/background.js
@@ -5,9 +5,11 @@
 var defaultOptions = {
   "list": true,
   "thread": true,
+  "threadall": false,
   "fixedtoolbar": false,
   "redirect": false,
-  "history": false
+  "history": false,
+  "loaddrafts": false
 };
 
 function cleanUpOptions() {
diff --git a/console_inject.js b/console_inject.js
index 0f77085..7c0d339 100644
--- a/console_inject.js
+++ b/console_inject.js
@@ -13,6 +13,10 @@
             intersectionObserver.observe(node.querySelector(".load-more-button"));
           }
 
+          if (options.threadall && node.classList.contains("load-more-bar")) {
+            intersectionObserver.observe(node.querySelector(".load-all-button"));
+          }
+
           if (options.history && ("parentNode" in node) && node.parentNode !== null && ("tagName" in node.parentNode) && node.parentNode.tagName == "EC-USER") {
             var nameElement = node.querySelector(".name span");
             if (nameElement !== null) {
diff --git a/console_inject_start.js b/console_inject_start.js
new file mode 100644
index 0000000..6036464
--- /dev/null
+++ b/console_inject_start.js
@@ -0,0 +1,23 @@
+/*var forums = ["youtube"];
+
+for (forum of startup[1][2]) {
+  if (forums.includes(forum[2][14])) {
+    forum[3] = {
+      "1": {
+        "2": "1551129889541098",
+          "3": 100
+      },
+      "2": {
+        "7": true
+      }
+    }
+  }
+}*/
+
+chrome.storage.sync.get(null, function(items) {
+  if (items.loaddrafts) {
+    var startup = JSON.parse(document.querySelector("html").getAttribute("data-startup"));
+    startup[4][13] = true;
+    document.querySelector("html").setAttribute("data-startup", JSON.stringify(startup));
+  }
+});
diff --git a/manifest.json b/manifest.json
index 55779eb..d1ee5e0 100644
--- a/manifest.json
+++ b/manifest.json
@@ -13,6 +13,11 @@
       "js": ["console_inject.js"]
     },
     {
+      "matches": ["https://support.google.com/s/community*"],
+      "js": ["console_inject_start.js"],
+      "run_at": "document_start"
+    },
+    {
       "matches": ["https://support.google.com/*/threads*"],
       "js": ["forum_inject.js"]
     },
diff --git a/options.css b/options.css
new file mode 100644
index 0000000..a6fb4de
--- /dev/null
+++ b/options.css
@@ -0,0 +1,4 @@
+.help {
+  cursor: help;
+  border-bottom: dashed 1px gray;
+}
diff --git a/options.html b/options.html
index 8e4bd46..6b120c5 100644
--- a/options.html
+++ b/options.html
@@ -3,17 +3,20 @@
   <head>
     <meta charset="utf-8">
     <title>Options</title>
+    <link rel="stylesheet" href="options.css">
   </head>
   <body>
     <p>
       <input type="checkbox" id="list"> <label for="list" data-i18n="list"></label><br>
-      <input type="checkbox" id="thread"> <label for="thread" data-i18n="thread"></label>
+      <input type="checkbox" id="thread"> <label for="thread" data-i18n="thread"></label><br>
+      <input type="checkbox" id="threadall"> <label for="threadall" data-i18n="threadall"></label>
     </p>
     <h4 data-i18n="enhancements"></h4>
     <p>
       <input type="checkbox" id="fixedtoolbar"> <label for="fixedtoolbar" data-i18n="fixedtoolbar"></label><br>
       <input type="checkbox" id="redirect"> <label for="redirect" data-i18n="redirect"></label> <span style="color: gray;" data-i18n="experimental_label"></span><br>
-      <input type="checkbox" id="history"> <label for="history" data-i18n="history"></label>
+      <input type="checkbox" id="history"> <label for="history" data-i18n="history"></label><br>
+      <input type="checkbox" id="loaddrafts"> <label for="loaddrafts" data-i18n="loaddrafts"></label> <span style="color: gray;" data-i18n="experimental_label"></span>
     </p>
     <p style="text-align: center;"><button id="save" data-i18n="save"></button></p>
     <script src="options.js"></script>
diff --git a/options.js b/options.js
index 266a28b..026776c 100644
--- a/options.js
+++ b/options.js
@@ -5,9 +5,11 @@
 var defaultOptions = {
   "list": true,
   "thread": true,
+  "threadall": false,
   "fixedtoolbar": false,
   "redirect": false,
-  "history": false
+  "history": false,
+  "loaddrafts": false
 };
 
 function cleanUpOptions(options) {
@@ -39,14 +41,19 @@
 }
 
 function i18n() {
-  var messages = ["list", "thread", "enhancements", "fixedtoolbar", "redirect", "experimental_label", "history", "save"];
+  var messages = ["list", "thread", "threadall", "enhancements", "fixedtoolbar", "redirect", "loaddrafts", "experimental_label", "history", "save"];
 
   messages.forEach(function(msg) {
-    console.log(msg);
-    document.querySelector("[data-i18n=\""+msg+"\"]").innerHTML = chrome.i18n.getMessage("options_"+msg);
+    document.querySelectorAll("[data-i18n=\""+msg+"\"]").forEach(el => el.innerHTML = chrome.i18n.getMessage("options_"+msg));
   });
 }
 
+function thread() {
+  if (document.querySelector("#thread").checked && document.querySelector("#threadall").checked) {
+    document.querySelector("#"+(this.id == "thread" ? "threadall" : "thread")).checked = false;
+  }
+}
+
 window.addEventListener("load", function() {
   i18n();
 
@@ -59,6 +66,7 @@
       }
     });
 
+    ["thread", "threadall"].forEach(el => document.querySelector("#"+el).addEventListener("change", thread));
     document.querySelector("#save").addEventListener("click", save);
   });
 });
diff --git a/thread_inject.js b/thread_inject.js
index bfaa0fa..e756640 100644
--- a/thread_inject.js
+++ b/thread_inject.js
@@ -22,5 +22,10 @@
       intersectionObserver = new IntersectionObserver(intersectionCallback, intersectionOptions);
       intersectionObserver.observe(button);
     }
+    var allbutton = document.querySelector(".thread-all-replies__load-all-button");
+    if (items.threadall && button !== null) {
+      intersectionObserver = new IntersectionObserver(intersectionCallback, intersectionOptions);
+      intersectionObserver.observe(allbutton);
+    }
   }
 });
