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 8cc8d72739d8671abc1f215fa4f8429d63723d9d..072bc772fa135ab77150ea210b1a3896716e94f5 100644
--- a/smp-ui-tests/src/main/java/pages/components/Sidebar.java
+++ b/smp-ui-tests/src/main/java/pages/components/Sidebar.java
@@ -5,6 +5,7 @@ import org.openqa.selenium.WebElement;
 import org.openqa.selenium.support.FindBy;
 import org.openqa.selenium.support.PageFactory;
 import org.openqa.selenium.support.pagefactory.AjaxElementLocatorFactory;
+import pages.components.baseComponents.Header;
 import pages.components.baseComponents.SMPPage;
 import pages.components.baseComponents.PageComponent;
 import utils.PROPERTIES;
@@ -58,6 +59,7 @@ public class Sidebar extends PageComponent {
 		}
 
 		waitForXMillis(500);
+		new Header(driver).waitForTitleToBe();
 		return PageFactory.initElements(driver, expect);
 	}
 
diff --git a/smp-ui-tests/src/main/java/pages/components/baseComponents/Header.java b/smp-ui-tests/src/main/java/pages/components/baseComponents/Header.java
index 8e987a6461aaf2ea99a1d0ee5cadc0f3de0a5666..7ea13821ef982c59ab0a84a98a35d12ffb58231e 100644
--- a/smp-ui-tests/src/main/java/pages/components/baseComponents/Header.java
+++ b/smp-ui-tests/src/main/java/pages/components/baseComponents/Header.java
@@ -41,4 +41,9 @@ public class Header extends PageComponent{
 		webDriverWait.until(ExpectedConditions.textToBePresentInElement(pageTitle, title));
 	}
 
+	public void waitForTitleToBe(){
+		waitForXMillis(500);
+		waitForElementToBeVisible(pageTitle);
+	}
+
 }
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 4faf7b4c03cf56ad381d67272d14afded06fd8d6..3140d04d23048c1205b9c8c73da8b50a59e2669c 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
@@ -41,6 +41,10 @@ public class PageComponent {
 		return webDriverWait.until(ExpectedConditions.visibilityOf(element));
 	}
 
+	public WebElement waitForElementToBeVisible(By elementSelector) {
+		return webDriverWait.until(ExpectedConditions.visibilityOfElementLocated(elementSelector));
+	}
+
 	public void waitForElementToBeEnabled(WebElement element) {
 		int maxTimeout = PROPERTIES.TIMEOUT * 1000;
 		int waitedSoFar = 0;
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 133421c3745937c66ec5a66ab7b5a64f4e9fe1e5..0421d1b44b131bc67761067e88509354e13fbe53 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
@@ -1,6 +1,7 @@
 package pages.components.grid;
 
 import org.openqa.selenium.By;
+import org.openqa.selenium.JavascriptExecutor;
 import org.openqa.selenium.WebDriver;
 import org.openqa.selenium.WebElement;
 import org.openqa.selenium.interactions.Actions;
@@ -21,6 +22,7 @@ public class BasicGrid extends PageComponent {
 		
 		log.info("Loading basic grid");
 		waitToLoad();
+		waitForRowsToLoad();
 		PageFactory.initElements( new DefaultElementLocatorFactory(container) , this);
 
 		for (int i = 0; i < gridHeaders.size(); i++) {
@@ -40,6 +42,23 @@ public class BasicGrid extends PageComponent {
 		}
 	}
 
+	public void waitForRowsToLoad() {
+		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);
+			waitForXMillis(500);
+		} catch (Exception e) {	}
+	}
+
 	@FindBy(css = "datatable-header div.datatable-row-center datatable-header-cell")
 	protected List<WebElement> gridHeaders;
 
diff --git a/smp-ui-tests/src/main/java/pages/service_groups/FilterArea.java b/smp-ui-tests/src/main/java/pages/service_groups/FilterArea.java
index 931fb8c30aef4da4e47b04b55e568b8ef073363b..5a82558b7da000bf5c7d6e97b2c12b39ff8a43cb 100644
--- a/smp-ui-tests/src/main/java/pages/service_groups/FilterArea.java
+++ b/smp-ui-tests/src/main/java/pages/service_groups/FilterArea.java
@@ -63,9 +63,6 @@ public class FilterArea extends PageComponent {
 		}
 
 		searchButton.click();
-//		TODO - wait for loading bar to disappear
-		waitForXMillis(1000);
-
 	}
 
 
diff --git a/smp-ui-tests/src/main/java/pages/service_groups/edit/ServiceGroupPopup.java b/smp-ui-tests/src/main/java/pages/service_groups/edit/ServiceGroupPopup.java
index 4b0fa85d642b62bfe1f01fcd646c7ff6dd4f3d53..5c58733a84fe6dccbd909783d28d1b588ece138d 100644
--- a/smp-ui-tests/src/main/java/pages/service_groups/edit/ServiceGroupPopup.java
+++ b/smp-ui-tests/src/main/java/pages/service_groups/edit/ServiceGroupPopup.java
@@ -147,6 +147,7 @@ public class ServiceGroupPopup extends PageComponent {
 	public void enterDataInExtensionTextArea(String text){
 		waitForElementToBeVisible(extensionTextArea).clear();
 		extensionTextArea.sendKeys(text);
+		waitForXMillis(1000);
 	}
 
 	public void fillParticipantIdentifier(String participantIdentifier){
diff --git a/smp-ui-tests/src/main/java/utils/DriverManager.java b/smp-ui-tests/src/main/java/utils/DriverManager.java
index 6169400ffdca80d4e361e28e0e4b96db1e35fae4..3f29d60ea5b6cb516820af97fef9fcf0c690a765 100644
--- a/smp-ui-tests/src/main/java/utils/DriverManager.java
+++ b/smp-ui-tests/src/main/java/utils/DriverManager.java
@@ -5,6 +5,7 @@ import org.openqa.selenium.firefox.FirefoxDriver;
 import org.openqa.selenium.firefox.FirefoxDriverLogLevel;
 import org.openqa.selenium.firefox.FirefoxOptions;
 
+import java.util.concurrent.TimeUnit;
 import java.util.logging.Level;
 
 public class DriverManager {
@@ -24,11 +25,15 @@ public class DriverManager {
 
     public static WebDriver getDriver(){
 		System.setProperty(FirefoxDriver.SystemProperty.DRIVER_USE_MARIONETTE,"true");
-		System.setProperty(FirefoxDriver.SystemProperty.BROWSER_LOGFILE,"C:\\temp\\logs.txt");
+//		System.setProperty(FirefoxDriver.SystemProperty.BROWSER_LOGFILE,"C:\\temp\\logs.txt");
 
 
 
 		WebDriver driver = new FirefoxDriver();
+		driver.manage().timeouts().implicitlyWait(2, TimeUnit.SECONDS);
+		driver.manage().timeouts().pageLoadTimeout(5, TimeUnit.SECONDS);
+		driver.manage().timeouts().setScriptTimeout(2, TimeUnit.SECONDS);
+
 		driver.manage().window().maximize();
 
 		return driver;
diff --git a/smp-ui-tests/src/test/java/ui/BaseTest.java b/smp-ui-tests/src/test/java/ui/BaseTest.java
index ef15336ab0757137ee132a34c86e82592baab7a9..57ccd8685b3c5facfda5b98b0cd40192424a0fdf 100644
--- a/smp-ui-tests/src/test/java/ui/BaseTest.java
+++ b/smp-ui-tests/src/test/java/ui/BaseTest.java
@@ -9,6 +9,7 @@ import utils.Generator;
 import utils.PROPERTIES;
 import utils.TestDataProvider;
 import utils.customReporter.ExcelTestReporter;
+import utils.customReporter.TestProgressReporter;
 import utils.rest.SMPRestClient;
 
 import java.util.ArrayList;
@@ -16,7 +17,7 @@ import java.util.Arrays;
 import java.util.HashMap;
 import java.util.List;
 
-@Listeners(ExcelTestReporter.class)
+@Listeners({ExcelTestReporter.class, TestProgressReporter.class})
 public class BaseTest {
 
 	static WebDriver driver;
diff --git a/smp-ui-tests/src/test/java/ui/EditPgTest.java b/smp-ui-tests/src/test/java/ui/EditPgTest.java
index c4b93748a62d06c2cb28d758dcea67e05fa7d858..c3ae1fc99b1a32b64c0ffffb813b7aba2f162c8f 100644
--- a/smp-ui-tests/src/test/java/ui/EditPgTest.java
+++ b/smp-ui-tests/src/test/java/ui/EditPgTest.java
@@ -18,14 +18,14 @@ import utils.rest.SMPRestClient;
 import java.util.List;
 
 @SuppressWarnings("SpellCheckingInspection")
-public class EditPgTest extends BaseTest{
+public class EditPgTest extends BaseTest {
 
 	@AfterMethod
-	public void logoutAndReset(){
+	public void logoutAndReset() {
 		SMPPage page = new SMPPage(driver);
 		page.refreshPage();
 
-		if(page.pageHeader.sandwichMenu.isLoggedIn()){
+		if (page.pageHeader.sandwichMenu.isLoggedIn()) {
 			logger.info("Logout!!");
 			page.pageHeader.sandwichMenu.logout();
 		}
@@ -34,16 +34,16 @@ public class EditPgTest extends BaseTest{
 
 
 	@BeforeMethod
-	public void loginAndGoToEditPage(){
+	public void loginAndGoToEditPage() {
 
 		SMPPage page = new SMPPage(driver);
 
-		if(page.pageHeader.sandwichMenu.isLoggedIn()){
+		if (page.pageHeader.sandwichMenu.isLoggedIn()) {
 			logger.info("Logout!!");
 			page.pageHeader.sandwichMenu.logout();
 		}
 
-		if(!page.pageHeader.sandwichMenu.isLoggedIn()){
+		if (!page.pageHeader.sandwichMenu.isLoggedIn()) {
 			logger.info("Login!!");
 			page.pageHeader.goToLogin().login("SMP_ADMIN");
 		}
@@ -54,7 +54,7 @@ public class EditPgTest extends BaseTest{
 
 
 	@Test(description = "EDT-10")
-	public void testFilters(){
+	public void testFilters() {
 		SoftAssert soft = new SoftAssert();
 		EditPage page = new EditPage(driver);
 
@@ -82,8 +82,8 @@ public class EditPgTest extends BaseTest{
 	}
 
 	@Test(description = "EDT-20")
-	public void doubleclickRow(){
-		String extensionData = "<Extension xmlns=\"http://docs.oasis-open.org/bdxr/ns/SMP/2016/05\"><ExtensionID>df</ExtensionID><ExtensionName>sdxf</ExtensionName><!-- Custom element is mandatory by OASIS SMP schema. Replace following element with your XML structure. --><ext:example xmlns:ext=\"http://my.namespace.eu\">my mandatory content</ext:example></Extension>";
+	public void doubleclickRow() {
+		String extensionData = "<Extension xmlns=\"http://docs.oasis-open.org/bdxr/ns/SMP/2016/05\"><ExtensionID>df</ExtensionID><ExtensionName>sdxf</ExtensionName><!-- Custom element is mandatory by OASIS SMP schema. Replace following element with your XML structure. --><ext:example xmlns:ext=\"http://my.namespace.eu\">" + Generator.randomAlphaNumeric(10) + "</ext:example></Extension>";
 
 
 		SoftAssert soft = new SoftAssert();
@@ -130,7 +130,7 @@ public class EditPgTest extends BaseTest{
 	}
 
 	@Test(description = "EDT-30")
-	public void editActionButtonOnRow(){
+	public void editActionButtonOnRow() {
 		SoftAssert soft = new SoftAssert();
 		EditPage page = new EditPage(driver);
 
@@ -148,7 +148,7 @@ public class EditPgTest extends BaseTest{
 	}
 
 	@Test(description = "EDT-40")
-	public void editButtonOnPage(){
+	public void editButtonOnPage() {
 		SoftAssert soft = new SoftAssert();
 		EditPage page = new EditPage(driver);
 
@@ -173,7 +173,7 @@ public class EditPgTest extends BaseTest{
 	}
 
 	@Test(description = "EDT-50")
-	public void serviceGroupPopupUICheck(){
+	public void serviceGroupPopupUICheck() {
 		SoftAssert soft = new SoftAssert();
 		EditPage page = new EditPage(driver);
 
@@ -198,7 +198,7 @@ public class EditPgTest extends BaseTest{
 	}
 
 	@Test(description = "EDT-60")
-	public void newMetadataIcon(){
+	public void newMetadataIcon() {
 		SoftAssert soft = new SoftAssert();
 		EditPage page = new EditPage(driver);
 
@@ -221,7 +221,7 @@ public class EditPgTest extends BaseTest{
 //	Cannot identify the cause of failure so move on and hope for the best
 
 	@Test(description = "EDT-70")
-	public void noSYSADMINOwners(){
+	public void noSYSADMINOwners() {
 		SoftAssert soft = new SoftAssert();
 		EditPage page = new EditPage(driver);
 
@@ -242,7 +242,7 @@ public class EditPgTest extends BaseTest{
 		for (String sysadmin : sysadmins) {
 			logger.info("Checking sysadmin " + sysadmin);
 			for (String listedOption : listedOptions) {
-				if(listedOption.equalsIgnoreCase(sysadmin)){
+				if (listedOption.equalsIgnoreCase(sysadmin)) {
 					soft.fail("Found sysadmin between options for SG owners - " + sysadmin);
 				}
 			}
@@ -252,13 +252,13 @@ public class EditPgTest extends BaseTest{
 	}
 
 	@Test(description = "EDT-80")
-	public void allDomainsInDomainsAccordionSection(){
+	public void allDomainsInDomainsAccordionSection() {
 		SoftAssert soft = new SoftAssert();
 		EditPage page = new EditPage(driver);
 
 		ServiceGroupGrid grid = page.getGrid();
 
-		Integer index = 0 ;
+		Integer index = 0;
 
 		ServiceGroupRowE row0 = grid.getRowsAs(ServiceGroupRowE.class).get(index);
 		grid.doubleClickRow(index);
@@ -273,8 +273,8 @@ public class EditPgTest extends BaseTest{
 			boolean found = false;
 			logger.info("Checking domain " + domain);
 			for (String listedOption : listedOptions) {
-				if(listedOption.equalsIgnoreCase(domain)){
-					found= true;
+				if (listedOption.equalsIgnoreCase(domain)) {
+					found = true;
 				}
 			}
 			soft.assertTrue(found, "Domain found in options - " + domain);
@@ -286,7 +286,7 @@ public class EditPgTest extends BaseTest{
 	}
 
 	@Test(description = "EDT-90")
-	public void extensionValidatedOnOK(){
+	public void extensionValidatedOnOK() {
 		String identifier = Generator.randomAlphaNumeric(7);
 		String tmpSchemeRoot = Generator.randomAlphaNumeric(3).toLowerCase();
 		String scheme = String.format("%s-%s-%s", tmpSchemeRoot, tmpSchemeRoot, tmpSchemeRoot);
@@ -351,7 +351,7 @@ public class EditPgTest extends BaseTest{
 	}
 
 	@Test(description = "EDT-100")
-	public void deleteServiceGroup(){
+	public void deleteServiceGroup() {
 		SoftAssert soft = new SoftAssert();
 		EditPage page = new EditPage(driver);
 
@@ -393,7 +393,7 @@ public class EditPgTest extends BaseTest{
 
 	}
 
-	private int scrollToSG(String pi){
+	private int scrollToSG(String pi) {
 		EditPage page = new EditPage(driver);
 		page.pagination.skipToFirstPage();
 
@@ -403,14 +403,16 @@ public class EditPgTest extends BaseTest{
 
 			List<ServiceGroupRow> rows = page.getGrid().getRows();
 			for (int i = 0; i < rows.size(); i++) {
-				if(rows.get(i).getParticipantIdentifier().equalsIgnoreCase(pi)){
+				if (rows.get(i).getParticipantIdentifier().equalsIgnoreCase(pi)) {
 					return i;
 				}
 			}
 
-			if(page.pagination.hasNextPage()){
+			if (page.pagination.hasNextPage()) {
 				page.pagination.goToNextPage();
-			}else{end = true;}
+			} else {
+				end = true;
+			}
 		}
 
 		return -1;