diff --git a/smp-ui-tests/src/main/java/pages/components/SandwichMenu.java b/smp-ui-tests/src/main/java/pages/components/SandwichMenu.java
index b652d6674b0eae9128693f1614619f5f123b8fc3..815f5ebdb34f62307b2cf5de42c7a511586ac18e 100644
--- a/smp-ui-tests/src/main/java/pages/components/SandwichMenu.java
+++ b/smp-ui-tests/src/main/java/pages/components/SandwichMenu.java
@@ -34,6 +34,7 @@ public class SandwichMenu extends PageComponent {
 
 	public boolean isLoggedIn(){
 		clickVoidSpace();
+
 		waitForElementToBeClickable(expandoButton).click();
 
 		boolean isLoggedIn = false;
diff --git a/smp-ui-tests/src/main/java/pages/components/Sidebar.java b/smp-ui-tests/src/main/java/pages/components/Sidebar.java
index 29f59a1de1970396022149e7ca56cd54ebaab4a6..7d2d243ec3cd69b5c139e62b8327ad22040ca569 100644
--- a/smp-ui-tests/src/main/java/pages/components/Sidebar.java
+++ b/smp-ui-tests/src/main/java/pages/components/Sidebar.java
@@ -63,6 +63,8 @@ public class Sidebar extends PageComponent {
 
 		new Header(driver).waitForTitleToBe();
 
+		waitForRowsToLoad();
+
 		return PageFactory.initElements(driver, expect);
 	}
 
diff --git a/smp-ui-tests/src/main/java/pages/components/baseComponents/PageComponent.java b/smp-ui-tests/src/main/java/pages/components/baseComponents/PageComponent.java
index 5f41159c87c6e10e9b19e83d92b13192e04b05d5..90c62399fdc41629130f498fa677edb2ebeba240 100644
--- a/smp-ui-tests/src/main/java/pages/components/baseComponents/PageComponent.java
+++ b/smp-ui-tests/src/main/java/pages/components/baseComponents/PageComponent.java
@@ -80,6 +80,34 @@ public class PageComponent {
 		}
 	}
 
+	public void waitForElementToBeGone(By locator) {
+		WebDriverWait myWait = new WebDriverWait(driver, PROPERTIES.SHORT_UI_TIMEOUT);
+
+		try {
+			myWait.until(ExpectedConditions.visibilityOfElementLocated(locator));
+		} catch (Exception e) {
+			return;
+		}
+
+		int waitTime = PROPERTIES.SHORT_UI_TIMEOUT * 1000;
+		while (waitTime > 0) {
+			boolean displayed = true;
+
+			try {
+				displayed = driver.findElement(locator).isDisplayed();
+			} catch (Exception e) {
+				return;
+			}
+
+			if (!displayed) {
+				return;
+			}
+
+			waitForXMillis(500);
+			waitTime = waitTime - 500;
+		}
+	}
+
 	public void waitForNumberOfWindowsToBe(int noOfWindows) {
 		try {
 			wait.until(numberOfWindowsToBe(noOfWindows));
@@ -196,17 +224,18 @@ public class PageComponent {
 	public void waitForRowsToLoad() {
 		log.info("waiting for rows to load");
 		try {
-			waitForElementToBeVisible(loadingBar);
-
-			int bars = 1;
-			int waits = 0;
-			while (bars > 0 && waits < 30) {
-				Object tmp = ((JavascriptExecutor) driver).executeScript("return document.querySelectorAll('.mat-ripple-element').length;");
-				bars = Integer.valueOf(tmp.toString());
-				waits++;
-				waitForXMillis(500);
-			}
-			log.debug("waited for rows to load for ms = 500*" + waits);
+			waitForElementToBeGone(loadingBar);
+//			waitForElementToBeVisible(loadingBar);
+//
+//			int bars = 1;
+//			int waits = 0;
+//			while (bars > 0 && waits < 30) {
+//				Object tmp = ((JavascriptExecutor) driver).executeScript("return document.querySelectorAll('.mat-ripple-element').length;");
+//				bars = Integer.valueOf(tmp.toString());
+//				waits++;
+//				waitForXMillis(500);
+//			}
+//			log.debug("waited for rows to load for ms = 500*" + waits);
 		} catch (Exception e) {	}
 		waitForXMillis(500);
 	}
diff --git a/smp-ui-tests/src/main/java/pages/components/grid/BasicGrid.java b/smp-ui-tests/src/main/java/pages/components/grid/BasicGrid.java
index 8a96ee341b54c0dd5c96260c0a796e60388bbca1..00195ea9daf0b1f8cfe9e5cecf92c480c922a672 100644
--- a/smp-ui-tests/src/main/java/pages/components/grid/BasicGrid.java
+++ b/smp-ui-tests/src/main/java/pages/components/grid/BasicGrid.java
@@ -21,7 +21,7 @@ public class BasicGrid extends PageComponent {
 		super(driver);
 		
 		log.info("Loading basic grid");
-		waitToLoad();
+//		waitToLoad();
 		waitForRowsToLoad();
 		PageFactory.initElements( new DefaultElementLocatorFactory(container) , this);
 
@@ -31,14 +31,14 @@ public class BasicGrid extends PageComponent {
 
 	}
 
-	private void waitToLoad(){
-		try {
-			waitForXMillis(500);
-			waitForElementToBeGone(driver.findElement(loadingBar));
-		} catch (Exception e) {
-
-		}
-	}
+//	private void waitToLoad(){
+//		try {
+//			waitForXMillis(500);
+//			waitForElementToBeGone(driver.findElement(loadingBar));
+//		} catch (Exception e) {
+//
+//		}
+//	}
 
 
 
diff --git a/smp-ui-tests/src/test/java/ui/BaseTest.java b/smp-ui-tests/src/test/java/ui/BaseTest.java
index a78a6d21bc7b64551eec8232260055584ce60816..b5592c84e1196e620b3a59522c89f8634201a642 100644
--- a/smp-ui-tests/src/test/java/ui/BaseTest.java
+++ b/smp-ui-tests/src/test/java/ui/BaseTest.java
@@ -1,6 +1,7 @@
 package ui;
 
 import org.apache.log4j.Logger;
+import org.openqa.selenium.JavascriptExecutor;
 import org.openqa.selenium.WebDriver;
 import org.testng.annotations.*;
 import pages.components.baseComponents.SMPPage;
@@ -15,7 +16,6 @@ import utils.rest.SMPRestClient;
 import java.lang.reflect.Method;
 import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.HashMap;
 import java.util.List;
 
 @Listeners({ExcelTestReporter.class, TestProgressReporter.class})
@@ -36,7 +36,7 @@ public class BaseTest {
 	@BeforeSuite(alwaysRun = true)
 	/*Starts the browser and navigates to the homepage. This happens once before the test
 	suite and the browser window is reused for all tests in suite*/
-	public void beforeSuite(){
+	public void beforeSuite() {
 		logger.info("Creating necessary data !!!!");
 		createDomains();
 		createUsers();
@@ -50,7 +50,7 @@ public class BaseTest {
 
 	@AfterSuite(alwaysRun = true)
 	/*After the test suite is done we close the browser*/
-	public void afterSuite(){
+	public void afterSuite() {
 		logger.info("Deleting created data!!!");
 
 		deleteTestData();
@@ -65,7 +65,7 @@ public class BaseTest {
 	}
 
 	@AfterClass(alwaysRun = true)
-	public void afterClass(){
+	public void afterClass() {
 		driver.quit();
 //		driver.get(PROPERTIES.UI_BASE_URL);
 //		SMPPage page = new SMPPage(driver);
@@ -78,7 +78,7 @@ public class BaseTest {
 	}
 
 	@BeforeClass(alwaysRun = true)
-	public void beforeClass(){
+	public void beforeClass() {
 		driver = DriverManager.getDriver();
 		driver.get(PROPERTIES.UI_BASE_URL);
 	}
@@ -92,48 +92,47 @@ public class BaseTest {
 	}
 
 
-	private void createDomains(){
+	private void createDomains() {
 		for (int i = 0; i < 5; i++) {
 			String generated = Generator.randomAlphaNumeric(10);
 			boolean created = SMPRestClient.createDomain(generated);
-			if(created){
-			createdDomains.add(generated);}
-			else{
+			if (created) {
+				createdDomains.add(generated);
+			} else {
 				logger.warn("Test data creation: Domain creation failed for " + generated);
 			}
 		}
 	}
 
-	private void createUsers(){
+	private void createUsers() {
 		String[] roles = {"SMP_ADMIN", "SERVICE_GROUP_ADMIN", "SYSTEM_ADMIN"};
 		for (int i = 0; i < 6; i++) {
 			String generated = Generator.randomAlphaNumeric(10);
-			String role = roles[i%roles.length];
+			String role = roles[i % roles.length];
 			boolean created = SMPRestClient.createUser(generated, role);
-			if(created){
-			createdUsers.add(generated);}
-			else{
+			if (created) {
+				createdUsers.add(generated);
+			} else {
 				logger.warn("Test data creation: User creation failed for " + generated);
 			}
 		}
 	}
 
-	private void createSGs(){
+	private void createSGs() {
 		for (int i = 0; i < 5; i++) {
 			String generated = Generator.randomAlphaNumeric(10);
 			List<String> users = Arrays.asList(createdUsers.get(0));
 			List<String> domains = Arrays.asList(createdDomains.get(0));
 			boolean created = SMPRestClient.createServiceGroup(generated, generated, users, domains);
-			if(created){
+			if (created) {
 				createdServiceGroups.add(generated);
-			}
-			else{
+			} else {
 				logger.warn("Test data creation: SG creation failed for " + generated);
 			}
 		}
 	}
 
-	private void deleteTestData(){
+	private void deleteTestData() {
 		for (String createdServiceGroup : createdServiceGroups) {
 			try {
 				SMPRestClient.deleteSG(createdServiceGroup);
@@ -158,5 +157,41 @@ public class BaseTest {
 	}
 
 
+	protected void genericLogoutProcedure() {
+		log.info("executing the generic logout procedure");
+
+		SMPPage page = new SMPPage(driver);
+		page.refreshPage();
+
+		try {
+			if (page.pageHeader.sandwichMenu.isLoggedIn()) {
+				logger.info("Logout!!");
+				page.pageHeader.sandwichMenu.logout();
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+
+		driver.manage().deleteAllCookies();
+		((JavascriptExecutor) driver).executeScript("localStorage.clear();");
+
+		page.refreshPage();
+		page.waitForXMillis(100);
+	}
+
+	protected SMPPage genericLoginProcedure(String role) {
+		SMPPage page = new SMPPage(driver);
+
+		genericLogoutProcedure();
+
+		if (!page.pageHeader.sandwichMenu.isLoggedIn()) {
+			logger.info("Login!!");
+			page.pageHeader.goToLogin().login(role);
+		}
+
+		page.waitForRowsToLoad();
+		return page;
+	}
+
 }
 
diff --git a/smp-ui-tests/src/test/java/ui/DomainPgTest.java b/smp-ui-tests/src/test/java/ui/DomainPgTest.java
index cb2445903786bdcfaec5977ef99502f148db3259..6f46e83555731145b0a9418ec7de25f19f1985a8 100644
--- a/smp-ui-tests/src/test/java/ui/DomainPgTest.java
+++ b/smp-ui-tests/src/test/java/ui/DomainPgTest.java
@@ -23,29 +23,17 @@ public class DomainPgTest extends BaseTest {
 	
 	@AfterMethod
 	public void logoutAndReset(){
-		SMPPage page = new SMPPage(driver);
-		page.refreshPage();
-		
-		if(page.pageHeader.sandwichMenu.isLoggedIn()){
-			logger.info("Logout!!");
-			page.pageHeader.sandwichMenu.logout();
-		}
+		genericLogoutProcedure();
 	}
-	
+
 	
 	@BeforeMethod
 	public void loginAndGoToDomainPage(){
 		
-		SMPPage page = new SMPPage(driver);
-		
-		if(!page.pageHeader.sandwichMenu.isLoggedIn()){
-			logger.info("Login!!");
-			page.pageHeader.goToLogin().login("SYS_ADMIN");
-		}
-		
+		SMPPage page = genericLoginProcedure("SYS_ADMIN");
+
 		logger.info("Going to Domain page");
 		page.sidebar.goToPage(DomainPage.class);
-		page.waitForRowsToLoad();
 	}
 	
 	@Test(description = "DMN-0")
diff --git a/smp-ui-tests/src/test/java/ui/EditPgTest.java b/smp-ui-tests/src/test/java/ui/EditPgTest.java
index e59889089cb062f1f67c07d267c476870dc65a72..26b22fb492212bd0c241e1347f4fda759c8591e1 100644
--- a/smp-ui-tests/src/test/java/ui/EditPgTest.java
+++ b/smp-ui-tests/src/test/java/ui/EditPgTest.java
@@ -22,31 +22,14 @@ public class EditPgTest extends BaseTest {
 
 	@AfterMethod
 	public void logoutAndReset() {
-		SMPPage page = new SMPPage(driver);
-		page.refreshPage();
-
-		if (page.pageHeader.sandwichMenu.isLoggedIn()) {
-			logger.info("Logout!!");
-			page.pageHeader.sandwichMenu.logout();
-		}
-		page.waitForXMillis(100);
+		genericLogoutProcedure();
 	}
 
 
 	@BeforeMethod
 	public void loginAndGoToEditPage() {
 
-		SMPPage page = new SMPPage(driver);
-
-		if (page.pageHeader.sandwichMenu.isLoggedIn()) {
-			logger.info("Logout!!");
-			page.pageHeader.sandwichMenu.logout();
-		}
-
-		if (!page.pageHeader.sandwichMenu.isLoggedIn()) {
-			logger.info("Login!!");
-			page.pageHeader.goToLogin().login("SMP_ADMIN");
-		}
+		SMPPage page = genericLoginProcedure("SMP_ADMIN");
 
 		logger.info("Going to Edit page");
 		page.sidebar.goToPage(EditPage.class);
diff --git a/smp-ui-tests/src/test/java/ui/PrivilegesTests.java b/smp-ui-tests/src/test/java/ui/PrivilegesTests.java
index 58a0f265da7d4202d63c880f2f847fe2f0fc7956..47cc2374e7246b6053838810f3a9e71570da2352 100644
--- a/smp-ui-tests/src/test/java/ui/PrivilegesTests.java
+++ b/smp-ui-tests/src/test/java/ui/PrivilegesTests.java
@@ -20,17 +20,7 @@ public class PrivilegesTests extends BaseTest {
 
 	@AfterMethod
 	public void logoutAndReset(){
-		SMPPage page = new SMPPage(driver);
-		page.refreshPage();
-
-		try {
-			if(page.pageHeader.sandwichMenu.isLoggedIn()){
-				logger.info("Logout!!");
-				page.pageHeader.sandwichMenu.logout();
-			}
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
+		genericLogoutProcedure();
 	}
 
 	@Test(description = "RGT-0")
diff --git a/smp-ui-tests/src/test/java/ui/UsersPgTest.java b/smp-ui-tests/src/test/java/ui/UsersPgTest.java
index d34f5509e039a08e00ea1991d140b629923eea13..e196b1a2ca204176a98f834a030109e580f1be42 100644
--- a/smp-ui-tests/src/test/java/ui/UsersPgTest.java
+++ b/smp-ui-tests/src/test/java/ui/UsersPgTest.java
@@ -1,6 +1,5 @@
 package ui;
 
-import org.openqa.selenium.JavascriptExecutor;
 import org.testng.annotations.AfterMethod;
 import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
@@ -25,38 +24,17 @@ public class UsersPgTest extends BaseTest {
 
 	@AfterMethod
 	public void logoutAndReset() {
-
-		driver.manage().deleteAllCookies();
-		((JavascriptExecutor) driver).executeScript("localStorage.clear();");
-
-		SMPPage page = new SMPPage(driver);
-		page.refreshPage();
-
-		if (page.pageHeader.sandwichMenu.isLoggedIn()) {
-			logger.info("Logout!!");
-			page.pageHeader.sandwichMenu.logout();
-		}
+		genericLogoutProcedure();
 	}
 
 
 	@BeforeMethod
 	public void loginAndGoToUsersPage() {
 
-		SMPPage page = new SMPPage(driver);
-
-		if (page.pageHeader.sandwichMenu.isLoggedIn()) {
-			logger.info("Logout!!");
-			page.pageHeader.sandwichMenu.logout();
-		}
-
-		if (!page.pageHeader.sandwichMenu.isLoggedIn()) {
-			logger.info("Login!!");
-			page.pageHeader.goToLogin().login("SYS_ADMIN");
-		}
+		SMPPage page = genericLoginProcedure("SYS_ADMIN");
 
 		logger.info("Going to Users page");
 		page.sidebar.goToPage(UsersPage.class);
-		page.waitForRowsToLoad();
 	}
 
 	@Test(description = "USR-10")