diff --git a/e2e/chromeOpts.js b/e2e/chromeOpts.js
index f2239f793d3bd4f104e8f6b8e53edc8e999c8cd6..1098647da939f5ee6664e3767ffd77dade1b5041 100644
--- a/e2e/chromeOpts.js
+++ b/e2e/chromeOpts.js
@@ -1,7 +1,8 @@
 module.exports = [
   '--headless',
   '--no-sandbox',
+  '--disable-gpu',
   '--disable-setuid-sandbox',
   "--disable-extensions",
-  '--window-size=800,600'
+  '--window-size=1600,800'
 ]
\ No newline at end of file
diff --git a/e2e/src/iv.e2e-spec.js b/e2e/src/iv.e2e-spec.js
index 59851d8de22d0b1c9182d99d787726957f1db143..be4f07158e7b2c9f1f1abb376fc3fac810a2a10c 100644
--- a/e2e/src/iv.e2e-spec.js
+++ b/e2e/src/iv.e2e-spec.js
@@ -97,7 +97,7 @@ describe('IAV', () => {
       const page = await browser.newPage()
       await page.goto(`${ATLAS_URL}${searchParam}`, { waitUntil: 'networkidle2' })
       await awaitNehubaViewer(page)
-      await page.waitFor(500 * waitMultiple)
+      await page.waitFor(1000 * waitMultiple)
 
       const actualNav = await getCurrentNavigationState(page)
       expect(expectedNav).toEqual(actualNav)
diff --git a/e2e/src/ivApi.js b/e2e/src/ivApi.js
index 11708c8c8b1db0a53441649ba19e38dad5879858..90797e8f4be93c0bdc37c657554d36bf6efcfae3 100644
--- a/e2e/src/ivApi.js
+++ b/e2e/src/ivApi.js
@@ -26,8 +26,9 @@ exports.getSelectedRegions = async (page) => {
   })
 }
 
-exports.getCurrentNavigationState = async (page) => {
-  return await page.evaluate(async () => {
+exports.getCurrentNavigationState = page => new Promise(async rs => {
+  const rObj = await page.evaluate(async () => {
+
     let returnObj, sub
     const getPr = () =>  new Promise(rs => {
 
@@ -49,15 +50,17 @@ exports.getCurrentNavigationState = async (page) => {
 
     return returnObj
   })
-}
+  rs(rObj)
+})
 
 exports.awaitNehubaViewer = async (page) => {
-  const getNVAvailable = () => new Promise((rs, rj) => {
-    page.evaluate(() => {
-      if (nehubaViewer) rs()
-      else rj()
+  const getNVAvailable = () => new Promise(async (rs, rj) => {
+    const result = await page.evaluate(() => {
+      return !!window.nehubaViewer
     })
+    if (result) return rs()
+    else return rj()
   })
 
   await retry(getNVAvailable, { timeout: 500 * waitMultiple, retries: 10 })
-}
\ No newline at end of file
+}
diff --git a/src/ui/viewerStateController/viewerState.base.ts b/src/ui/viewerStateController/viewerState.base.ts
index db5527bbbd227f6fe0d3a1fae96ab65e095564e5..6a3804835b723ac36106c27806be836211ceba6a 100644
--- a/src/ui/viewerStateController/viewerState.base.ts
+++ b/src/ui/viewerStateController/viewerState.base.ts
@@ -2,7 +2,7 @@ import { OnInit, TemplateRef, ViewChild } from "@angular/core";
 import { MatBottomSheet, MatBottomSheetRef, MatSelectChange } from "@angular/material";
 import { select, Store } from "@ngrx/store";
 import { Observable, Subscription } from "rxjs";
-import { distinctUntilChanged, filter, shareReplay, tap } from "rxjs/operators";
+import { distinctUntilChanged, filter, shareReplay } from "rxjs/operators";
 import { DialogService } from "src/services/dialogService.service";
 import { RegionSelection } from "src/services/state/userConfigState.store";
 import { IavRootStoreInterface, SELECT_REGIONS, USER_CONFIG_ACTION_TYPES } from "src/services/stateStore.service";
@@ -77,8 +77,7 @@ export class ViewerStateBase implements OnInit {
 
     this.availableTemplates$ = viewerState$.pipe(
       select('fetchedTemplates'),
-      distinctUntilChanged(),
-      tap(() => console.log('available templates'))
+      distinctUntilChanged()
     )
 
     this.availableParcellations$ = this.templateSelected$.pipe(