diff --git a/src/components/hubl-reactivity.js b/src/components/hubl-reactivity.js
index 2dc766c264a3e7efda4ece0087db0bc9a6d91c4d..400a4e2dead93c4c3bd602557a1d77befe4cc638 100644
--- a/src/components/hubl-reactivity.js
+++ b/src/components/hubl-reactivity.js
@@ -11,21 +11,17 @@ export const HublReactivity = {
         this.subscribe();
       }
     },
-    dataSrc: {
-      type: String,
-      default: '',
-      callback: async function (value) {
-        this.resourceId = null;
-        if (this.nestedField) {
-          const resource = store.get(value) || await store.getData(value, this.context);
-          const nestedResource = await resource[this.nestedField]
-          this.resourceId = nestedResource ? nestedResource['@id'] : null;
-        } else {
-          this.resourceId = value;
-        }
-        this.subscribe();
-      }
-    },
+  },
+  async fetchData(value) {
+    this.resourceId = null;
+    if (this.nestedField) {
+      const resource = store.get(value) || await store.getData(value, this.context);
+      const nestedResource = await resource[this.nestedField]
+      this.resourceId = nestedResource ? nestedResource['@id'] : null;
+    } else {
+      this.resourceId = value;
+    }
+    this.subscribe();
   },
   subscribe() {
     if (this.resourceId && this.targetSrc) {
diff --git a/src/index.pug b/src/index.pug
index 40219405ac72126acfb57071090de7d8b97093f1..3946b154270feab1bd0b3daf0a36f9e172b8090c 100644
--- a/src/index.pug
+++ b/src/index.pug
@@ -59,11 +59,11 @@ html(lang="en")
               include views/page-dashboard.pug
 
           if publicDirectory && endpoints.get.users
-            #members(hidden, data-view="members").no-sidebar.with-padding
+            #members(hidden, data-view="members", no-render).no-sidebar.with-padding
               include views/page-directory.pug
 
           if endpoints.get.joboffers
-            #job-offers(hidden, data-view="job-offers").no-sidebar.with-padding
+            #job-offers(hidden, data-view="job-offers", no-render).no-sidebar.with-padding
               hubl-reactivity(data-src=`${endpoints.post.joboffers}current/` target-src=`${endpoints.get.joboffers}`)
               hubl-reactivity(data-src=`${endpoints.post.joboffers}expired/` target-src=`${endpoints.get.joboffers}`)
               hubl-reactivity(data-src=`${endpoints.post.joboffers}` target-src=`${endpoints.get.joboffers}`)
@@ -76,7 +76,7 @@ html(lang="en")
               include views/page-job-offers.pug
 
           if endpoints.get.projects
-            #project(hidden, data-view="project").with-sidebar
+            #project(hidden, data-view="project", no-render).with-sidebar
               hubl-reactivity(data-src=`${endpoints.post.projects}joinable/` target-src=`${endpoints.get.projects}`)
               hubl-reactivity(data-src=`${endpoints.post.projects}` target-src=`${endpoints.get.projects}`)
               hubl-reactivity(bind-user nested-field="projects" target-src=`${endpoints.post.projects}`)
@@ -87,7 +87,7 @@ html(lang="en")
               include views/page-project.pug
 
           if endpoints.get.circles
-            #circle(hidden, data-view="circle").with-sidebar
+            #circle(hidden, data-view="circle", no-render).with-sidebar
               hubl-reactivity(data-src=`${endpoints.post.circles}joinable/` target-src=`${endpoints.get.circles}`)
               hubl-reactivity(data-src=`${endpoints.post.circles}` target-src=`${endpoints.get.circles}`)
               hubl-reactivity(bind-user nested-field="circles" target-src=`${endpoints.post.circles}`)
@@ -97,29 +97,29 @@ html(lang="en")
               hubl-reactivity(bind-user nested-field="circles" target-src=`${endpoints.circles || endpoints.get.circles}joinable/`)
               include views/page-circle.pug
           if endpoints.get.users
-            #messages(hidden, data-view="messages").with-sidebar
+            #messages(hidden, data-view="messages", no-render).with-sidebar
               include views/page-messages.pug
               
           if endpoints.get.polls
-            #polls(hidden, data-view="polls").with-sidebar
+            #polls(hidden, data-view="polls", no-render).with-sidebar
               include views/page-polls.pug
 
           if endpoints.get.events
-            #events(hidden, data-view="events")
+            #events(hidden, data-view="events", no-render)
               include views/page-events.pug
 
           if endpoints.get.resources
-            #resources(hidden, data-view="resources")
+            #resources(hidden, data-view="resources", no-render)
               include views/page-resources.pug
 
-          #admin(hidden, data-view="admin").with-sidebar
+          #admin(hidden, data-view="admin", no-render).with-sidebar
             include views/page-admin.pug
 
-          #about(data-view="about").no-sidebar.with-padding
+          #about(data-view="about", no-render).no-sidebar.with-padding
             include views/page-about.pug
             
           if endpoints.get.skills && endpoints.post.uploads && endpoints.post.users
-            #profile(hidden, data-view="profile").no-sidebar
+            #profile(hidden, data-view="profile", no-render).no-sidebar
               include views/page-profile.pug
       
       if analytics
diff --git a/src/scripts/firefox-scroll.js b/src/scripts/firefox-scroll.js
index 4405aa69c407835edfc0571272ac46d8ac668de2..3b9bb180bd09a5056308504b5fae162c4bc8ea4e 100644
--- a/src/scripts/firefox-scroll.js
+++ b/src/scripts/firefox-scroll.js
@@ -1,6 +1,8 @@
 document.addEventListener("DOMContentLoaded", () => {
   const resizeChat = () => {
-    let isMobile = window.innerHeight < 993;
+    let isMobile = window.innerWidth < 993;
+    let isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') > -1;
+    let isFirefoxMobile = navigator.platform.toLowerCase().indexOf("mobile") > -1 || navigator.platform.toLowerCase().indexOf("tablet") > -1;
     let chatBox = Array.from(document.querySelectorAll("solid-xmpp-chat"))
       .map((el) => el.shadowRoot ? el.shadowRoot.getElementById("conversejs") : false)
       .filter((el) => el)
@@ -19,10 +21,8 @@ document.addEventListener("DOMContentLoaded", () => {
             let viewportChat = Array.from(
               document.querySelectorAll("#viewport .chat-view")
             );
-            let headerOffset = document.querySelector('#header').offsetHeight;
-            let intermediateOffset = Array.from(document.querySelectorAll(".content-box__header")).filter(el=>el.offsetParent!==null?el:null)[0].offsetHeight;
             viewportChat.forEach(
-              (c) => (c.style.height = isMobile ? "calc(100vh - "+String(headerOffset+intermediateOffset)+"px - 57px)" : "calc(100vh - "+String(headerOffset+intermediateOffset)+"px)")
+              (c) => (c.style.height = isMobile ? (isFirefox && isFirefoxMobile) ? "calc(100vh - 106px - 57px)" : "calc(100vh - 106px)" : "calc(100vh - 64px - 83px)")
             );
           }
         }
diff --git a/src/scripts/register-sw.js b/src/scripts/register-sw.js
index c479a1258f4e905c7ccb537f5c88d09fce61c7a0..5b375a824fabba7c2a2d7a6104debc5293236939 100644
--- a/src/scripts/register-sw.js
+++ b/src/scripts/register-sw.js
@@ -1,11 +1,11 @@
-// if('serviceWorker' in navigator) {
-  // var refreshing;
-  // navigator.serviceWorker.addEventListener('controllerchange', () => {
-  //     if (refreshing) {
-  //         return;
-  //     }
-  //     refreshing = true;
-  //     window.location.reload();
-  // });
-  // navigator.serviceWorker.register('/sw.js');
-// }
\ No newline at end of file
+if('serviceWorker' in navigator) {
+  var refreshing;
+  navigator.serviceWorker.addEventListener('controllerchange', () => {
+      if (refreshing) {
+          return;
+      }
+      refreshing = true;
+      window.location.reload();
+  });
+  navigator.serviceWorker.register('/sw.js');
+}
\ No newline at end of file