diff --git a/ONAP-REST/src/main/java/org/onap/policy/rest/jpa/PolicyEntity.java b/ONAP-REST/src/main/java/org/onap/policy/rest/jpa/PolicyEntity.java
index 4cb4440..265d2f6 100644
--- a/ONAP-REST/src/main/java/org/onap/policy/rest/jpa/PolicyEntity.java
+++ b/ONAP-REST/src/main/java/org/onap/policy/rest/jpa/PolicyEntity.java
@@ -136,21 +136,6 @@
 	public void preUpdate() {
 		this.modifiedDate = new Date();		
 	}
-	
-	/*
-	public void resetPolicyVersion(){
-		this.policyVersion = 1;
-	}
-	public void advancePolicyVersion(){
-		this.policyVersion++;
-	}
-	public int getPolicyVersion(){
-		return this.policyVersion;
-	}
-	public void setPolicyVersion(int polVer){
-		this.policyVersion = polVer;
-	}
-	*/
 
 	/**
 	 * @return the policyId
diff --git a/ONAP-SDK-APP/src/main/java/org/onap/portalapp/conf/ExternalAppConfig.java b/ONAP-SDK-APP/src/main/java/org/openecomp/portalapp/conf/ExternalAppConfig.java
similarity index 96%
rename from ONAP-SDK-APP/src/main/java/org/onap/portalapp/conf/ExternalAppConfig.java
rename to ONAP-SDK-APP/src/main/java/org/openecomp/portalapp/conf/ExternalAppConfig.java
index 15a6c76..91ed598 100644
--- a/ONAP-SDK-APP/src/main/java/org/onap/portalapp/conf/ExternalAppConfig.java
+++ b/ONAP-SDK-APP/src/main/java/org/openecomp/portalapp/conf/ExternalAppConfig.java
@@ -17,13 +17,13 @@
  * limitations under the License.
  * ================================================================================
  */
-package org.onap.portalapp.conf;
+package org.openecomp.portalapp.conf;
 
 import java.util.ArrayList;
 import java.util.List;
 
-import org.onap.portalapp.login.LoginStrategyImpl;
-import org.onap.portalapp.scheduler.RegistryAdapter;
+import org.openecomp.portalapp.login.LoginStrategyImpl;
+import org.openecomp.portalapp.scheduler.RegistryAdapter;
 import org.openecomp.portalsdk.core.auth.LoginStrategy;
 import org.openecomp.portalsdk.core.conf.AppConfig;
 import org.openecomp.portalsdk.core.conf.Configurable;
@@ -52,7 +52,7 @@
  */
 @Configuration
 @EnableWebMvc
-@ComponentScan(basePackages = "org.onap")
+@ComponentScan(basePackages = "org.onap, org.openecomp")
 @PropertySource(value = { "${container.classpath:}/WEB-INF/conf/app/test.properties" }, ignoreResourceNotFound = true)
 @Profile("src")
 @EnableAsync
diff --git a/ONAP-SDK-APP/src/main/java/org/onap/portalapp/conf/ExternalAppInitializer.java b/ONAP-SDK-APP/src/main/java/org/openecomp/portalapp/conf/ExternalAppInitializer.java
similarity index 97%
rename from ONAP-SDK-APP/src/main/java/org/onap/portalapp/conf/ExternalAppInitializer.java
rename to ONAP-SDK-APP/src/main/java/org/openecomp/portalapp/conf/ExternalAppInitializer.java
index a77c781..2a904ce 100644
--- a/ONAP-SDK-APP/src/main/java/org/onap/portalapp/conf/ExternalAppInitializer.java
+++ b/ONAP-SDK-APP/src/main/java/org/openecomp/portalapp/conf/ExternalAppInitializer.java
@@ -17,7 +17,7 @@
  * limitations under the License.
  * ================================================================================
  */
-package org.onap.portalapp.conf;
+package org.openecomp.portalapp.conf;
 
 import org.openecomp.portalsdk.core.conf.AppInitializer;
 
diff --git a/ONAP-SDK-APP/src/main/java/org/onap/portalapp/conf/HibernateMappingLocations.java b/ONAP-SDK-APP/src/main/java/org/openecomp/portalapp/conf/HibernateMappingLocations.java
similarity index 95%
rename from ONAP-SDK-APP/src/main/java/org/onap/portalapp/conf/HibernateMappingLocations.java
rename to ONAP-SDK-APP/src/main/java/org/openecomp/portalapp/conf/HibernateMappingLocations.java
index ee73a5a..c66a96c 100644
--- a/ONAP-SDK-APP/src/main/java/org/onap/portalapp/conf/HibernateMappingLocations.java
+++ b/ONAP-SDK-APP/src/main/java/org/openecomp/portalapp/conf/HibernateMappingLocations.java
@@ -17,7 +17,7 @@
  * limitations under the License.
  * ================================================================================
  */
-package org.onap.portalapp.conf;
+package org.openecomp.portalapp.conf;
 
 import org.springframework.context.annotation.Profile;
 import org.springframework.core.io.ClassPathResource;
@@ -51,7 +51,7 @@
 	 */
 	@Override
 	public String[] getPackagesToScan() {
-		return new String[] { "org.onap" };
+		return new String[] { "org.onap", "org.openecomp" };
 	}
 
 }
diff --git a/ONAP-SDK-APP/src/main/java/org/onap/portalapp/lm/FusionLicenseManagerImpl.java b/ONAP-SDK-APP/src/main/java/org/openecomp/portalapp/lm/FusionLicenseManagerImpl.java
similarity index 96%
rename from ONAP-SDK-APP/src/main/java/org/onap/portalapp/lm/FusionLicenseManagerImpl.java
rename to ONAP-SDK-APP/src/main/java/org/openecomp/portalapp/lm/FusionLicenseManagerImpl.java
index 5028162..4993a00 100644
--- a/ONAP-SDK-APP/src/main/java/org/onap/portalapp/lm/FusionLicenseManagerImpl.java
+++ b/ONAP-SDK-APP/src/main/java/org/openecomp/portalapp/lm/FusionLicenseManagerImpl.java
@@ -1,4 +1,4 @@
-package org.onap.portalapp.lm;
+package org.openecomp.portalapp.lm;
 
 import java.util.Date;
 import java.util.List;
diff --git a/ONAP-SDK-APP/src/main/java/org/onap/portalapp/lm/LicenseableClassImpl.java b/ONAP-SDK-APP/src/main/java/org/openecomp/portalapp/lm/LicenseableClassImpl.java
similarity index 97%
rename from ONAP-SDK-APP/src/main/java/org/onap/portalapp/lm/LicenseableClassImpl.java
rename to ONAP-SDK-APP/src/main/java/org/openecomp/portalapp/lm/LicenseableClassImpl.java
index d3b08e2..26c5d91 100644
--- a/ONAP-SDK-APP/src/main/java/org/onap/portalapp/lm/LicenseableClassImpl.java
+++ b/ONAP-SDK-APP/src/main/java/org/openecomp/portalapp/lm/LicenseableClassImpl.java
@@ -17,7 +17,7 @@
  * limitations under the License.
  * ================================================================================
  */
-package org.onap.portalapp.lm;
+package org.openecomp.portalapp.lm;
 
 import java.io.FileNotFoundException;
 import java.io.InputStream;
diff --git a/ONAP-SDK-APP/src/main/java/org/onap/portalapp/login/LoginStrategyImpl.java b/ONAP-SDK-APP/src/main/java/org/openecomp/portalapp/login/LoginStrategyImpl.java
similarity index 98%
rename from ONAP-SDK-APP/src/main/java/org/onap/portalapp/login/LoginStrategyImpl.java
rename to ONAP-SDK-APP/src/main/java/org/openecomp/portalapp/login/LoginStrategyImpl.java
index dca71ae..a4b6847 100644
--- a/ONAP-SDK-APP/src/main/java/org/onap/portalapp/login/LoginStrategyImpl.java
+++ b/ONAP-SDK-APP/src/main/java/org/openecomp/portalapp/login/LoginStrategyImpl.java
@@ -1,4 +1,4 @@
-package org.onap.portalapp.login;
+package org.openecomp.portalapp.login;
 
 import javax.servlet.http.Cookie;
 import javax.servlet.http.HttpServletRequest;
diff --git a/ONAP-SDK-APP/src/main/java/org/onap/portalapp/scheduler/Register.java b/ONAP-SDK-APP/src/main/java/org/openecomp/portalapp/scheduler/Register.java
similarity index 96%
rename from ONAP-SDK-APP/src/main/java/org/onap/portalapp/scheduler/Register.java
rename to ONAP-SDK-APP/src/main/java/org/openecomp/portalapp/scheduler/Register.java
index b33707f..0bb7da1 100644
--- a/ONAP-SDK-APP/src/main/java/org/onap/portalapp/scheduler/Register.java
+++ b/ONAP-SDK-APP/src/main/java/org/openecomp/portalapp/scheduler/Register.java
@@ -17,12 +17,11 @@
  * limitations under the License.
  * ================================================================================
  */
-package org.onap.portalapp.scheduler;
+package org.openecomp.portalapp.scheduler;
 
 import java.util.ArrayList;
 import java.util.List;
 
-import org.openecomp.portalapp.scheduler.LogRegistry;
 import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate;
 import org.openecomp.portalsdk.core.scheduler.Registerable;
 import org.openecomp.portalsdk.core.util.SystemProperties;
diff --git a/ONAP-SDK-APP/src/main/java/org/onap/portalapp/scheduler/RegistryAdapter.java b/ONAP-SDK-APP/src/main/java/org/openecomp/portalapp/scheduler/RegistryAdapter.java
similarity index 98%
rename from ONAP-SDK-APP/src/main/java/org/onap/portalapp/scheduler/RegistryAdapter.java
rename to ONAP-SDK-APP/src/main/java/org/openecomp/portalapp/scheduler/RegistryAdapter.java
index 40069cf..18b3fa4 100644
--- a/ONAP-SDK-APP/src/main/java/org/onap/portalapp/scheduler/RegistryAdapter.java
+++ b/ONAP-SDK-APP/src/main/java/org/openecomp/portalapp/scheduler/RegistryAdapter.java
@@ -17,7 +17,7 @@
  * limitations under the License.
  * ================================================================================
  */
-package org.onap.portalapp.scheduler;
+package org.openecomp.portalapp.scheduler;
 
 import java.util.ArrayList;
 import java.util.Arrays;
diff --git a/ONAP-SDK-APP/src/main/java/org/onap/portalapp/service/AdminAuthExtension.java b/ONAP-SDK-APP/src/main/java/org/openecomp/portalapp/service/AdminAuthExtension.java
similarity index 89%
rename from ONAP-SDK-APP/src/main/java/org/onap/portalapp/service/AdminAuthExtension.java
rename to ONAP-SDK-APP/src/main/java/org/openecomp/portalapp/service/AdminAuthExtension.java
index dadb66c..db5c0a6 100644
--- a/ONAP-SDK-APP/src/main/java/org/onap/portalapp/service/AdminAuthExtension.java
+++ b/ONAP-SDK-APP/src/main/java/org/openecomp/portalapp/service/AdminAuthExtension.java
@@ -17,13 +17,13 @@
  * limitations under the License.
  * ================================================================================
  */
-package org.onap.portalapp.service;
+package org.openecomp.portalapp.service;
 
 import java.util.Set;
 
-import org.onap.policy.model.Roles;
 import org.onap.policy.rest.dao.CommonClassDao;
 import org.onap.policy.rest.jpa.UserInfo;
+import org.openecomp.policy.model.Roles;
 import org.openecomp.portalapp.service.IAdminAuthExtension;
 import org.openecomp.portalsdk.core.domain.Role;
 import org.openecomp.portalsdk.core.domain.User;
@@ -48,7 +48,7 @@
 	
 	/*
 	 * (non-Javadoc)
-	 * @see org.onap.portalapp.service.IAdminAuthExtension#saveUserExtension(org.openecomp.portalsdk.core.domain.User)
+	 * @see org.openecomp.portalapp.service.IAdminAuthExtension#saveUserExtension(org.openecomp.portalsdk.core.domain.User)
 	 */
 	public void saveUserExtension(User user) {
 		logger.debug("saveUserExtension");
@@ -57,7 +57,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * @see org.onap.portalapp.service.IAdminAuthExtension#editUserExtension(org.openecomp.portalsdk.core.domain.User)
+	 * @see org.openecomp.portalapp.service.IAdminAuthExtension#editUserExtension(org.openecomp.portalsdk.core.domain.User)
 	 */
 	public void editUserExtension(User user) {
 		logger.debug("editUserExtension");
@@ -65,7 +65,7 @@
 
 	/*
 	 * (non-Javadoc)
-	 * @see org.onap.portalapp.service.IAdminAuthExtension#saveUserRoleExtension(java.util.Set, org.openecomp.portalsdk.core.domain.User)
+	 * @see org.openecomp.portalapp.service.IAdminAuthExtension#saveUserRoleExtension(java.util.Set, org.openecomp.portalsdk.core.domain.User)
 	 */
 	public void saveUserRoleExtension(Set<Role> roles, User user) {
 		logger.debug("saveUserRoleExtension");
diff --git a/ONAP-SDK-APP/src/main/resources/logback.xml b/ONAP-SDK-APP/src/main/resources/logback.xml
index 5340181..fe4aac9 100644
--- a/ONAP-SDK-APP/src/main/resources/logback.xml
+++ b/ONAP-SDK-APP/src/main/resources/logback.xml
@@ -99,7 +99,7 @@
     <encoder>
       <pattern>${applicationLoggerPattern}</pattern>
     </encoder>
-    <filter class="org.onap.portalapp.util.CustomLoggingFilter" />
+    <filter class="org.openecomp.portalapp.util.CustomLoggingFilter" />
   </appender>
   
   <appender name="asyncEELF" class="ch.qos.logback.classic.AsyncAppender">
diff --git a/ONAP-SDK-APP/src/main/resources/portal.properties b/ONAP-SDK-APP/src/main/resources/portal.properties
index deca4e3..2ab096f 100644
--- a/ONAP-SDK-APP/src/main/resources/portal.properties
+++ b/ONAP-SDK-APP/src/main/resources/portal.properties
@@ -40,7 +40,7 @@
 ##########################################################################
 
 # Name of java class that implements the OnBoardingApiService interface.
-portal.api.impl.class = org.onap.portalapp.service.OnBoardingApiServiceImpl
+portal.api.impl.class = org.openecomp.portalapp.service.OnBoardingApiServiceImpl
 
 # CSP Global Log On for single sign on
 onap_redirect_url = todo_csp_global_logon
diff --git a/POLICY-SDK-APP/src/main/java/org/onap/policy/admin/PolicyManagerServlet.java b/POLICY-SDK-APP/src/main/java/org/onap/policy/admin/PolicyManagerServlet.java
index 036d13a..6fab5a6 100644
--- a/POLICY-SDK-APP/src/main/java/org/onap/policy/admin/PolicyManagerServlet.java
+++ b/POLICY-SDK-APP/src/main/java/org/onap/policy/admin/PolicyManagerServlet.java
@@ -66,7 +66,6 @@
 import org.onap.policy.components.HumanPolicyComponent;
 import org.onap.policy.controller.PolicyController;
 import org.onap.policy.controller.PolicyExportAndImportController;
-import org.onap.policy.model.Roles;
 import org.onap.policy.rest.XACMLRest;
 import org.onap.policy.rest.XACMLRestProperties;
 import org.onap.policy.rest.adapter.PolicyRestAdapter;
@@ -79,6 +78,7 @@
 import org.onap.policy.utils.PolicyUtils;
 import org.onap.policy.xacml.api.XACMLErrorConstants;
 import org.onap.policy.xacml.util.XACMLPolicyScanner;
+import org.openecomp.policy.model.Roles;
 import org.openecomp.portalsdk.core.web.support.UserUtils;
 
 import com.att.research.xacml.util.XACMLProperties;
diff --git a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/AutoPushController.java b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/AutoPushController.java
index f78a79c..7d601d6 100644
--- a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/AutoPushController.java
+++ b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/AutoPushController.java
@@ -46,7 +46,6 @@
 import org.onap.policy.common.logging.flexlogger.Logger;
 import org.onap.policy.model.PDPGroupContainer;
 import org.onap.policy.model.PDPPolicyContainer;
-import org.onap.policy.model.Roles;
 import org.onap.policy.rest.adapter.AutoPushTabAdapter;
 import org.onap.policy.rest.dao.CommonClassDao;
 import org.onap.policy.rest.jpa.PolicyEntity;
@@ -55,6 +54,7 @@
 import org.onap.policy.xacml.api.pap.OnapPDPGroup;
 import org.onap.policy.xacml.std.pap.StdPDPGroup;
 import org.onap.policy.xacml.std.pap.StdPDPPolicy;
+import org.openecomp.policy.model.Roles;
 import org.openecomp.portalsdk.core.controller.RestrictedBaseController;
 import org.openecomp.portalsdk.core.web.support.JsonMessage;
 import org.openecomp.portalsdk.core.web.support.UserUtils;
diff --git a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateBRMSParamController.java b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateBRMSParamController.java
index 3107950..9104b98 100644
--- a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateBRMSParamController.java
+++ b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/CreateBRMSParamController.java
@@ -20,12 +20,7 @@
 
 package org.onap.policy.controller;
 
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileReader;
 import java.io.PrintWriter;
-import java.nio.file.Files;
-import java.nio.file.Paths;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashMap;
@@ -367,25 +362,11 @@
 	public void paramUIGenerate(PolicyRestAdapter policyAdapter, PolicyEntity entity) {
 		String data = entity.getConfigurationData().getConfigBody();
 		if(data != null){
-			File file = new File(PolicyController.getConfigHome() +File.separator+ entity.getConfigurationData().getConfigurationName());
-			if(file.exists()){
-				try (BufferedReader br = new BufferedReader(new FileReader(file))) {
-					StringBuilder sb = new StringBuilder();
-					String line = br.readLine();
-					while (line != null) {
-						sb.append(line);
-						sb.append("\n");
-						line = br.readLine();
-					}
-				}catch(Exception e){
-					policyLogger.error(XACMLErrorConstants.ERROR_DATA_ISSUE+ e.getMessage() + e);
-				}
-			}
 			try {	
 				StringBuilder params = new StringBuilder("");
 				Boolean flag = false;
 				Boolean comment = false;
-				for (String line : Files.readAllLines(Paths.get(file.toString()))) {
+				for (String line : data.split("\n")) {
 					if (line.isEmpty() || line.startsWith("//")) {
 						continue;
 					}
diff --git a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/PDPController.java b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/PDPController.java
index 0f8a3c9..f40587d 100644
--- a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/PDPController.java
+++ b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/PDPController.java
@@ -37,11 +37,11 @@
 import org.onap.policy.common.logging.flexlogger.FlexLogger;
 import org.onap.policy.common.logging.flexlogger.Logger;
 import org.onap.policy.model.PDPGroupContainer;
-import org.onap.policy.model.Roles;
 import org.onap.policy.xacml.api.XACMLErrorConstants;
 import org.onap.policy.xacml.api.pap.OnapPDPGroup;
 import org.onap.policy.xacml.std.pap.StdPDP;
 import org.onap.policy.xacml.std.pap.StdPDPGroup;
+import org.openecomp.policy.model.Roles;
 import org.openecomp.portalsdk.core.controller.RestrictedBaseController;
 import org.openecomp.portalsdk.core.web.support.JsonMessage;
 import org.openecomp.portalsdk.core.web.support.UserUtils;
diff --git a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/PolicyController.java b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/PolicyController.java
index aa19189..375ee2d 100644
--- a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/PolicyController.java
+++ b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/PolicyController.java
@@ -40,7 +40,6 @@
 import org.onap.policy.admin.PolicyNotificationMail;
 import org.onap.policy.admin.RESTfulPAPEngine;
 import org.onap.policy.model.PDPGroupContainer;
-import org.onap.policy.model.Roles;
 import org.onap.policy.rest.XACMLRestProperties;
 import org.onap.policy.rest.XacmlAdminAuthorization;
 import org.onap.policy.rest.dao.CommonClassDao;
@@ -49,6 +48,7 @@
 import org.onap.policy.rest.jpa.PolicyEntity;
 import org.onap.policy.rest.jpa.PolicyVersion;
 import org.onap.policy.rest.jpa.UserInfo;
+import org.openecomp.policy.model.Roles;
 import org.openecomp.portalsdk.core.controller.RestrictedBaseController;
 import org.openecomp.portalsdk.core.web.support.JsonMessage;
 import org.openecomp.portalsdk.core.web.support.UserUtils;
diff --git a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/PolicyExportAndImportController.java b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/PolicyExportAndImportController.java
index 92794dd..d26781c 100644
--- a/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/PolicyExportAndImportController.java
+++ b/POLICY-SDK-APP/src/main/java/org/onap/policy/controller/PolicyExportAndImportController.java
@@ -45,7 +45,6 @@
 import org.json.JSONObject;
 import org.onap.policy.common.logging.flexlogger.FlexLogger;
 import org.onap.policy.common.logging.flexlogger.Logger;
-import org.onap.policy.model.Roles;
 import org.onap.policy.rest.adapter.PolicyExportAdapter;
 import org.onap.policy.rest.dao.CommonClassDao;
 import org.onap.policy.rest.jpa.ActionBodyEntity;
@@ -55,6 +54,7 @@
 import org.onap.policy.rest.jpa.PolicyVersion;
 import org.onap.policy.rest.jpa.UserInfo;
 import org.onap.policy.xacml.api.XACMLErrorConstants;
+import org.openecomp.policy.model.Roles;
 import org.openecomp.portalsdk.core.controller.RestrictedBaseController;
 import org.openecomp.portalsdk.core.web.support.UserUtils;
 import org.springframework.beans.factory.annotation.Autowired;
diff --git a/POLICY-SDK-APP/src/main/java/org/onap/policy/model/Roles.java b/POLICY-SDK-APP/src/main/java/org/openecomp/policy/model/Roles.java
similarity index 98%
rename from POLICY-SDK-APP/src/main/java/org/onap/policy/model/Roles.java
rename to POLICY-SDK-APP/src/main/java/org/openecomp/policy/model/Roles.java
index 51e78d0..31a41ca 100644
--- a/POLICY-SDK-APP/src/main/java/org/onap/policy/model/Roles.java
+++ b/POLICY-SDK-APP/src/main/java/org/openecomp/policy/model/Roles.java
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.model;
+package org.openecomp.policy.model;
 
 
 import java.io.Serializable;
diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/main/policyEditor.html b/POLICY-SDK-APP/src/main/webapp/app/policyApp/main/policyEditor.html
index 1c43444..6ae6b88 100644
--- a/POLICY-SDK-APP/src/main/webapp/app/policyApp/main/policyEditor.html
+++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/main/policyEditor.html
@@ -216,7 +216,7 @@
 	
 	<!---------------------------DS2 ICONS-------------------------------->
 	<link rel="stylesheet" href="app/fusion/external/ds2/css/digital-ng-library/ionicons.css">	
-	<link rel="stylesheet" href="app/fusion/styles/onap.css">
+	<link rel="stylesheet" href="app/fusion/styles/ecomp.css">
 	<link rel="stylesheet" href="app/fusion/external/angular-gridster/dist/angular-gridster.min.css">
 	<script src= "app/policyApp/CSS/UIGrid/ui-grid.eot"></script>
 	<link rel="stylesheet" href="app/policyApp/CSS/UIGrid/ui-grid.svg">
diff --git a/POLICY-SDK-APP/src/test/java/org/onap/policy/admin/PolicyManagerServletTest.java b/POLICY-SDK-APP/src/test/java/org/onap/policy/admin/PolicyManagerServletTest.java
index e61742f..e3de43a 100644
--- a/POLICY-SDK-APP/src/test/java/org/onap/policy/admin/PolicyManagerServletTest.java
+++ b/POLICY-SDK-APP/src/test/java/org/onap/policy/admin/PolicyManagerServletTest.java
@@ -40,7 +40,6 @@
 import org.onap.policy.common.logging.flexlogger.Logger;
 import org.onap.policy.controller.CreateDcaeMicroServiceController;
 import org.onap.policy.controller.PolicyController;
-import org.onap.policy.model.Roles;
 import org.onap.policy.rest.dao.CommonClassDao;
 import org.onap.policy.rest.jpa.ActionBodyEntity;
 import org.onap.policy.rest.jpa.ConfigurationDataEntity;
@@ -49,6 +48,7 @@
 import org.onap.policy.rest.jpa.PolicyEntity;
 import org.onap.policy.rest.jpa.PolicyVersion;
 import org.onap.policy.rest.jpa.UserInfo;
+import org.openecomp.policy.model.Roles;
 
 public class PolicyManagerServletTest extends Mockito{
 	
diff --git a/POLICY-SDK-APP/src/test/java/org/onap/policy/controller/PDPControllerTest.java b/POLICY-SDK-APP/src/test/java/org/onap/policy/controller/PDPControllerTest.java
index 55a2288..8433c47 100644
--- a/POLICY-SDK-APP/src/test/java/org/onap/policy/controller/PDPControllerTest.java
+++ b/POLICY-SDK-APP/src/test/java/org/onap/policy/controller/PDPControllerTest.java
@@ -34,10 +34,10 @@
 import org.mockito.Mockito;
 import org.onap.policy.common.logging.flexlogger.FlexLogger;
 import org.onap.policy.common.logging.flexlogger.Logger;
-import org.onap.policy.model.Roles;
 import org.onap.policy.xacml.api.pap.OnapPDPGroup;
 import org.onap.policy.xacml.std.pap.StdPDPGroup;
 import org.onap.policy.xacml.std.pap.StdPDPGroupStatus;
+import org.openecomp.policy.model.Roles;
 import org.springframework.mock.web.MockHttpServletResponse;
 
 
diff --git a/packages/base/src/files/install/servers/onap/WEB-INF/classes/portal.properties b/packages/base/src/files/install/servers/onap/WEB-INF/classes/portal.properties
index e7332be..6b5ba61 100644
--- a/packages/base/src/files/install/servers/onap/WEB-INF/classes/portal.properties
+++ b/packages/base/src/files/install/servers/onap/WEB-INF/classes/portal.properties
@@ -41,7 +41,7 @@
 ##########################################################################
 
 # Name of java class that implements the OnBoardingApiService interface.
-portal.api.impl.class = org.onap.portalapp.service.OnBoardingApiServiceImpl
+portal.api.impl.class = org.openecomp.portalapp.service.OnBoardingApiServiceImpl
 
 # CSP Global Log On for single sign on
 onap_redirect_url = ${{ONAP_REDIRECT_URL}}
