[SDC] Full OnBoard health-check and NFoD support

Change-Id: I606f8a52c7e6d2bd5558f824957d890e552c5423
Signed-off-by: Avi Ziv <avi.ziv@amdocs.com>
diff --git a/common/pom.xml b/common/pom.xml
index 01be598..fd5fb48 100644
--- a/common/pom.xml
+++ b/common/pom.xml
@@ -15,17 +15,7 @@
     </parent>
 
     <properties>
-        <junit.version>4.12</junit.version>
-        <java.source>1.8</java.source>
-        <java.target>1.8</java.target>
-        <slf4j.version>1.7.21</slf4j.version>
         <aspectj.version>1.8.7</aspectj.version>
-        <servlet.version>2.5</servlet.version>
-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <commons.codec.version>1.10</commons.codec.version> <!-- orignal 1.6 updated to resolve
-		blackduck violation -->
-        <org.reflections.version>0.9.10</org.reflections.version><!-- orignal 0.9.9 updated to
-        resolve blackduck violation -->
 
     </properties>
 
diff --git a/onboarding/pom.xml b/onboarding/pom.xml
index 4131191..f9b7cd3 100644
--- a/onboarding/pom.xml
+++ b/onboarding/pom.xml
@@ -75,10 +75,9 @@
         <jetty.servlets.version>9.0.6.v20130930</jetty.servlets.version>
         <jersey.core.version>1.19.1</jersey.core.version>
         <jersey.multipart.version>1.18.1</jersey.multipart.version>
-        <junit.version>4.12</junit.version>
+        <junit.version>RELEASE</junit.version>
         <logback.version>1.1.2</logback.version>
         <mockito.all.version>1.10.19</mockito.all.version>
-        <openecomp.sdc.common.version>1.1.0-SNAPSHOT</openecomp.sdc.common.version>
         <org.codehaus.jackson.version>1.9.13</org.codehaus.jackson.version> <!-- orignal 1.9.2 -->
         <org.everit.json.schema.version>1.3.0</org.everit.json.schema.version> <!--new 1.4.1 orignal 1.3.0 updated to resolve blackduck violation -->
         <org.reflections.version>0.9.10</org.reflections.version> <!-- orignal 0.9.9 updated to resolve blackduck violation -->
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/action-library-rest/action-library-rest-services/pom.xml.versionsBackup b/openecomp-be/api/openecomp-sdc-rest-webapp/action-library-rest/action-library-rest-services/pom.xml.versionsBackup
deleted file mode 100644
index 47b9bdd..0000000
--- a/openecomp-be/api/openecomp-sdc-rest-webapp/action-library-rest/action-library-rest-services/pom.xml.versionsBackup
+++ /dev/null
@@ -1,143 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <artifactId>action-library-rest-services</artifactId>
-    <parent>
-        <groupId>org.openecomp.sdc.onboarding</groupId>
-        <artifactId>action-library-rest</artifactId>
-        <version>1.0-SNAPSHOT</version>
-    </parent>
-
-
-    <properties>
-        <errorcode.dir>${project.build.directory}/generated-sources/error-codes</errorcode.dir>
-    </properties>
-
-    <dependencies>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>action-library-rest-types</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-
-        <!-- Spring -->
-        <dependency>
-            <groupId>org.springframework</groupId>
-            <artifactId>spring-core</artifactId>
-            <version>${spring.framework.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.springframework</groupId>
-            <artifactId>spring-context</artifactId>
-            <version>${spring.framework.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.springframework</groupId>
-            <artifactId>spring-context-support</artifactId>
-            <version>${spring.framework.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.springframework</groupId>
-            <artifactId>spring-web</artifactId>
-            <version>${spring.framework.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.springframework</groupId>
-            <artifactId>spring-beans</artifactId>
-            <version>${spring.framework.version}</version>
-        </dependency>
-
-        <!-- CXF -->
-        <dependency>
-            <groupId>org.apache.cxf</groupId>
-            <artifactId>cxf-rt-frontend-jaxrs</artifactId>
-            <version>${cxf.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.httpcomponents</groupId>
-            <artifactId>httpclient</artifactId>
-            <version>${http.client.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.httpcomponents</groupId>
-            <artifactId>httpcore</artifactId>
-            <version>${http.client.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>javax.ws.rs</groupId>
-            <artifactId>javax.ws.rs-api</artifactId>
-            <version>${ws.rs.version}</version>
-        </dependency>
-
-        <!-- Other Stuff-->
-        <!--dependency>
-            <groupId>cglib</groupId>
-            <artifactId>cglib-nodep</artifactId>
-            <version>${cglib.nodep.version}</version>
-            <scope>runtime</scope>
-        </dependency-->
-
-        <!-- Java Stuff -->
-        <dependency>
-            <groupId>javax.inject</groupId>
-            <artifactId>javax.inject</artifactId>
-            <version>${javax.inject.version}</version>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-action-manager</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-action-api</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-logging-api</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-api</artifactId>
-            <version>1.7.21</version>
-        </dependency>
-        <dependency>
-            <groupId>com.sun.jersey.contribs</groupId>
-            <artifactId>jersey-multipart</artifactId>
-            <version>1.18.1</version>
-            <scope>provided</scope>
-        </dependency>
-    </dependencies>
-
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-surefire-plugin</artifactId>
-                <configuration>
-                    <includes>
-                        <include>test/core/unittest/offline/**</include>
-                    </includes>
-                    <skipTests>true</skipTests>
-                </configuration>
-            </plugin>
-            <!-- Error codes generator plugin -->
-            <!--plugin>
-                <groupId>org.openecomp.nfv.tools</groupId>
-                <artifactId>error-codes-maven-plugin</artifactId>
-            </plugin-->
-        </plugins>
-    </build>
-
-
-
-
-</project>
\ No newline at end of file
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/action-library-rest/action-library-rest-types/pom.xml.versionsBackup b/openecomp-be/api/openecomp-sdc-rest-webapp/action-library-rest/action-library-rest-types/pom.xml.versionsBackup
deleted file mode 100644
index 4749ce7..0000000
--- a/openecomp-be/api/openecomp-sdc-rest-webapp/action-library-rest/action-library-rest-types/pom.xml.versionsBackup
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <artifactId>action-library-rest-types</artifactId>
-    <name>action-library-rest-types</name>
-
-    <parent>
-        <groupId>org.openecomp.sdc.onboarding</groupId>
-        <artifactId>action-library-rest</artifactId>
-        <version>1.0-SNAPSHOT</version>
-        <relativePath>../</relativePath>
-    </parent>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-common-rest</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-action-api</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <!--<dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-vendor-license-manager</artifactId>
-            <version>${project.version}</version>
-        </dependency>-->
-    </dependencies>
-
-
-</project>
\ No newline at end of file
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/action-library-rest/pom.xml.versionsBackup b/openecomp-be/api/openecomp-sdc-rest-webapp/action-library-rest/pom.xml.versionsBackup
deleted file mode 100644
index de6c4c6..0000000
--- a/openecomp-be/api/openecomp-sdc-rest-webapp/action-library-rest/pom.xml.versionsBackup
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <groupId>org.openecomp.sdc.onboarding</groupId>
-    <artifactId>action-library-rest</artifactId>
-    <name>action-library-rest</name>
-    <version>1.0-SNAPSHOT</version>
-    <packaging>pom</packaging>
-
-    <parent>
-        <groupId>org.openecomp.sdc</groupId>
-        <artifactId>openecomp-sdc-rest-webapp</artifactId>
-        <version>1.0-SNAPSHOT</version>
-        <relativePath>../</relativePath>
-    </parent>
-    <modules>
-        <module>/action-library-rest-services</module>
-        <module>/action-library-rest-types</module>
-    </modules>
-</project>
\ No newline at end of file
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/application-config-rest/application-config-rest-services/pom.xml.versionsBackup b/openecomp-be/api/openecomp-sdc-rest-webapp/application-config-rest/application-config-rest-services/pom.xml.versionsBackup
deleted file mode 100644
index 9c3472a..0000000
--- a/openecomp-be/api/openecomp-sdc-rest-webapp/application-config-rest/application-config-rest-services/pom.xml.versionsBackup
+++ /dev/null
@@ -1,63 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <parent>
-        <groupId>org.openecomp.sdc</groupId>
-        <artifactId>application-config-rest</artifactId>
-        <version>1.0-SNAPSHOT</version>
-    </parent>
-
-    <artifactId>application-config-rest-services</artifactId>
-    <version>1.0-SNAPSHOT</version>
-    <!--packaging>pom</packaging-->
-
-    <dependencies>
-
-        <dependency>
-            <groupId>io.swagger</groupId>
-            <artifactId>swagger-annotations</artifactId>
-            <version>1.5.3</version>
-        </dependency>
-        <dependency>
-            <groupId>javax.ws.rs</groupId>
-            <artifactId>javax.ws.rs-api</artifactId>
-            <version>${ws.rs.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.springframework</groupId>
-            <artifactId>spring-context</artifactId>
-            <version>${spring.framework.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>javax.inject</groupId>
-            <artifactId>javax.inject</artifactId>
-            <version>1</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-application-config-manager</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-             <groupId>org.openecomp.sdc</groupId>
-            <artifactId>application-config-rest-types</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-common-rest</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <!-- CXF -->
-        <dependency>
-            <groupId>org.apache.cxf</groupId>
-            <artifactId>cxf-rt-frontend-jaxrs</artifactId>
-            <version>${cxf.version}</version>
-        </dependency>
-    </dependencies>
-
-    
-</project>
\ No newline at end of file
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/application-config-rest/application-config-rest-types/pom.xml.versionsBackup b/openecomp-be/api/openecomp-sdc-rest-webapp/application-config-rest/application-config-rest-types/pom.xml.versionsBackup
deleted file mode 100644
index a9c8bba..0000000
--- a/openecomp-be/api/openecomp-sdc-rest-webapp/application-config-rest/application-config-rest-types/pom.xml.versionsBackup
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <parent>
-        <groupId>org.openecomp.sdc</groupId>
-        <artifactId>application-config-rest</artifactId>
-        <version>1.0-SNAPSHOT</version>
-    </parent>
-
-    <groupId>org.openecomp.sdc</groupId>
-    <artifactId>application-config-rest-types</artifactId>
-    <version>1.0-SNAPSHOT</version>
-
-    
-</project>
\ No newline at end of file
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/application-config-rest/pom.xml.versionsBackup b/openecomp-be/api/openecomp-sdc-rest-webapp/application-config-rest/pom.xml.versionsBackup
deleted file mode 100644
index fd2e251..0000000
--- a/openecomp-be/api/openecomp-sdc-rest-webapp/application-config-rest/pom.xml.versionsBackup
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <parent>
-        <groupId>org.openecomp.sdc</groupId>
-        <artifactId>openecomp-sdc-rest-webapp</artifactId>
-        <version>1.0-SNAPSHOT</version>
-    </parent>
-
-    <groupId>org.openecomp.sdc</groupId>
-    <artifactId>application-config-rest</artifactId>
-    <version>1.0-SNAPSHOT</version>
-    <packaging>pom</packaging>
-
-
-    <modules>
-        <module>application-config-rest-services</module>
-        <module>application-config-rest-types</module>
-    </modules>
-    
-</project>
\ No newline at end of file
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/onboarding-rest-war/pom.xml.versionsBackup b/openecomp-be/api/openecomp-sdc-rest-webapp/onboarding-rest-war/pom.xml.versionsBackup
deleted file mode 100644
index 983518f..0000000
--- a/openecomp-be/api/openecomp-sdc-rest-webapp/onboarding-rest-war/pom.xml.versionsBackup
+++ /dev/null
@@ -1,226 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <groupId>org.openecomp.sdc.onboarding</groupId>
-    <artifactId>onboarding-be</artifactId>
-    <name>onboarding-rest-war</name>
-    <version>1.0-SNAPSHOT</version>
-    <packaging>war</packaging>
-
-    <parent>
-        <groupId>org.openecomp.sdc</groupId>
-        <artifactId>openecomp-sdc-rest-webapp</artifactId>
-        <version>1.0-SNAPSHOT</version>
-    </parent>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.openecomp.sdc.onboarding</groupId>
-            <artifactId>vendor-license-rest-services</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc.onboarding</groupId>
-            <artifactId>vendor-software-products-rest-services</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc.onboarding</groupId>
-            <artifactId>validation-rest-services</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <!--dependency>
-            <groupId>org.openecomp.sdc.onboarding</groupId>
-            <artifactId>application-config-rest-services</artifactId>
-            <version>${project.version}</version>
-        </dependency-->
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>application-config-rest-services</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc.onboarding</groupId>
-            <artifactId>action-library-rest-services</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>javax.servlet</groupId>
-            <artifactId>servlet-api</artifactId>
-            <version>${javax.servlet.version}</version>
-        </dependency>
-        <!-- JSON -->
-        <dependency>
-            <groupId>org.codehaus.jackson</groupId>
-            <artifactId>jackson-jaxrs</artifactId>
-            <version>${org.codehaus.jackson.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.codehaus.jackson</groupId>
-            <artifactId>jackson-core-asl</artifactId>
-            <version>${org.codehaus.jackson.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>javax.inject</groupId>
-            <artifactId>javax.inject</artifactId>
-            <version>1</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-vendor-software-product-manager</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.eclipse.jetty</groupId>
-            <artifactId>jetty-servlets</artifactId>
-            <version>9.0.6.v20130930</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-application-config-manager</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.codehaus.groovy</groupId>
-            <artifactId>groovy</artifactId>
-            <version>${groovy.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>ch.qos.logback</groupId>
-            <artifactId>logback-classic</artifactId>
-            <version>${logback.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>ch.qos.logback</groupId>
-            <artifactId>logback-core</artifactId>
-            <version>${logback.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.codehaus.janino</groupId>
-            <artifactId>janino</artifactId>
-            <scope>compile</scope>
-        </dependency>
-        <!--dependency>
-            <groupId>org.codehaus.janino</groupId>
-            <artifactId>commons-compiler</artifactId>
-            <version>3.0.6</version>
-            <scope>compile</scope>
-        </dependency-->
-        <dependency>
-            <groupId>org.springframework</groupId>
-            <artifactId>spring-core</artifactId>
-            <version>4.1.3.RELEASE</version>
-        </dependency>
-        <dependency>
-            <groupId>org.springframework</groupId>
-            <artifactId>spring-web</artifactId>
-            <version>4.1.3.RELEASE</version>
-        </dependency>
-        <dependency>
-            <groupId>org.springframework</groupId>
-            <artifactId>spring-aop</artifactId>
-            <version>4.1.3.RELEASE</version>
-        </dependency>
-        <dependency>
-            <groupId>org.springframework</groupId>
-            <artifactId>spring-webmvc</artifactId>
-            <version>4.1.3.RELEASE</version>
-        </dependency>
-        <dependency>
-            <groupId>org.aspectj</groupId>
-            <artifactId>aspectjweaver</artifactId>
-            <version>1.8.9</version>
-        </dependency>
-        <dependency>
-            <groupId>org.aspectj</groupId>
-            <artifactId>aspectjrt</artifactId>
-            <version>1.8.9</version>
-        </dependency>
-        <dependency>
-            <groupId>org.aspectj</groupId>
-            <artifactId>aspectjtools</artifactId>
-            <version>1.8.9</version>
-        </dependency>
-
-    </dependencies>
-
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-compiler-plugin</artifactId>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-surefire-plugin</artifactId>
-                <configuration>
-                    <includes>
-                        <include>test/core/unittest/offline/**</include>
-                    </includes>
-                    <skipTests>true</skipTests>
-                    <systemProperties>
-                        <property>
-                            <name>buildNumber</name>
-                            <value>${buildNumber}</value>
-                        </property>
-                    </systemProperties>
-                </configuration>
-            </plugin>
-            <plugin>
-                <artifactId>maven-war-plugin</artifactId>
-                <version>2.1.1</version>
-                <configuration>
-                    <attachClasses>true</attachClasses>
-                    <webResources>
-                        <resource>
-                            <!-- this is relative to the pom.xml directory -->
-                            <directory>${basedir}/target/generated/swagger-ui</directory>
-                        </resource>
-                    </webResources>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>com.github.kongchen</groupId>
-                <artifactId>swagger-maven-plugin</artifactId>
-                <version>3.1.0</version>
-                <configuration>
-                    <apiSources>
-                        <apiSource>
-                            <springmvc>false</springmvc>
-                            <locations>org.openecomp.sdcrests</locations>
-                            <schemes>http</schemes>
-                            <basePath>/onboarding-api</basePath>
-                            <info>
-                                <title>Rest API</title>
-                                <version>v1.0, build #${buildNumber}</version>
-                                <description>Rest API Documentation</description>
-                                <termsOfService>
-                                    http://www.github.com/kongchen/swagger-maven-plugin
-                                </termsOfService>
-                            </info>
-                            <templatePath>${basedir}/templates/strapdown.html.hbs</templatePath>
-                            <outputPath>${basedir}/target/generated/api.html</outputPath>
-                            <swaggerDirectory>${basedir}/target/generated/swagger-ui
-                            </swaggerDirectory>
-                        </apiSource>
-                    </apiSources>
-                </configuration>
-                <executions>
-                    <execution>
-                        <phase>compile</phase>
-                        <goals>
-                            <goal>generate</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-
-        <!--finalName>onboarding-api</finalName-->
-    </build>
-
-</project>
\ No newline at end of file
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/openecomp-sdc-common-rest/pom.xml.versionsBackup b/openecomp-be/api/openecomp-sdc-rest-webapp/openecomp-sdc-common-rest/pom.xml.versionsBackup
deleted file mode 100644
index aaf3383..0000000
--- a/openecomp-be/api/openecomp-sdc-rest-webapp/openecomp-sdc-common-rest/pom.xml.versionsBackup
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <artifactId>openecomp-sdc-common-rest</artifactId>
-    <name>openecomp-sdc-common-rest</name>
-    <parent>
-        <groupId>org.openecomp.sdc</groupId>
-        <artifactId>openecomp-sdc-rest-webapp</artifactId>
-        <version>1.0-SNAPSHOT</version>
-    </parent>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-utilities-lib</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-common-lib</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.hibernate</groupId>
-            <artifactId>hibernate-validator</artifactId>
-            <version>${hibernate.validator.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>javax.ws.rs</groupId>
-            <artifactId>javax.ws.rs-api</artifactId>
-            <version>${ws.rs.version}</version>
-        </dependency>
-        <!-- Swagger -->
-        <dependency>
-            <groupId>io.swagger</groupId>
-            <artifactId>swagger-core</artifactId>
-            <version>${swagger.version}</version>
-            <scope>compile</scope>
-        </dependency>
-    </dependencies>
-
-</project>
\ No newline at end of file
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/pom.xml.versionsBackup b/openecomp-be/api/openecomp-sdc-rest-webapp/pom.xml.versionsBackup
deleted file mode 100644
index cd9b491..0000000
--- a/openecomp-be/api/openecomp-sdc-rest-webapp/pom.xml.versionsBackup
+++ /dev/null
@@ -1,28 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-	<modelVersion>4.0.0</modelVersion>
-
-	<artifactId>openecomp-sdc-rest-webapp</artifactId>
-	<name>openecomp-sdc-rest-webapp</name>
-	<version>1.0-SNAPSHOT</version>
-	<packaging>pom</packaging>
-
-	<parent>
-		<groupId>org.openecomp.sdc</groupId>
-		<artifactId>openecomp-sdc-api</artifactId>
-		<version>1.0-SNAPSHOT</version>
-		<relativePath>../</relativePath>
-	</parent>
-
-	<modules>
-		<module>/openecomp-sdc-common-rest</module>
-		<module>/vendor-license-rest</module>
-		<module>/onboarding-rest-war</module>
-		<module>/vendor-software-products-rest</module>
-		<module>/sequence-rest</module>
-		<module>/validation-rest</module>
-		<module>/action-library-rest</module>
-		<module>/application-config-rest</module>
-	</modules>
-
-</project>
\ No newline at end of file
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/sequence-rest/pom.xml.versionsBackup b/openecomp-be/api/openecomp-sdc-rest-webapp/sequence-rest/pom.xml.versionsBackup
deleted file mode 100644
index 313a50c..0000000
--- a/openecomp-be/api/openecomp-sdc-rest-webapp/sequence-rest/pom.xml.versionsBackup
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <parent>
-        <artifactId>openecomp-sdc-rest-webapp</artifactId>
-        <groupId>org.openecomp.sdc</groupId>
-        <version>1.0-SNAPSHOT</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-
-    <artifactId>sequence-rest</artifactId>
-
-
-</project>
\ No newline at end of file
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/validation-rest/pom.xml.versionsBackup b/openecomp-be/api/openecomp-sdc-rest-webapp/validation-rest/pom.xml.versionsBackup
deleted file mode 100644
index 8bacd99..0000000
--- a/openecomp-be/api/openecomp-sdc-rest-webapp/validation-rest/pom.xml.versionsBackup
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <groupId>org.openecomp.sdc.onboarding</groupId>
-    <artifactId>validation-rest</artifactId>
-    <name>validation-rest</name>
-    <version>1.0-SNAPSHOT</version>
-    <packaging>pom</packaging>
-
-    <parent>
-        <groupId>org.openecomp.sdc</groupId>
-        <artifactId>openecomp-sdc-rest-webapp</artifactId>
-        <version>1.0-SNAPSHOT</version>
-    </parent>
-    <modules>
-        <module>/validation-rest-services</module>
-        <module>/validation-rest-types</module>
-    </modules>
-</project>
\ No newline at end of file
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/validation-rest/validation-rest-services/pom.xml.versionsBackup b/openecomp-be/api/openecomp-sdc-rest-webapp/validation-rest/validation-rest-services/pom.xml.versionsBackup
deleted file mode 100644
index ffc4173..0000000
--- a/openecomp-be/api/openecomp-sdc-rest-webapp/validation-rest/validation-rest-services/pom.xml.versionsBackup
+++ /dev/null
@@ -1,152 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <artifactId>validation-rest-services</artifactId>
-    <parent>
-        <groupId>org.openecomp.sdc.onboarding</groupId>
-        <artifactId>validation-rest</artifactId>
-        <version>1.0-SNAPSHOT</version>
-    </parent>
-
-    <dependencies>
-    <dependency>
-        <groupId>org.springframework</groupId>
-        <artifactId>spring-core</artifactId>
-        <version>${spring.framework.version}</version>
-    </dependency>
-    <dependency>
-        <groupId>org.springframework</groupId>
-        <artifactId>spring-context</artifactId>
-        <version>${spring.framework.version}</version>
-    </dependency>
-    <dependency>
-        <groupId>org.springframework</groupId>
-        <artifactId>spring-context-support</artifactId>
-        <version>${spring.framework.version}</version>
-    </dependency>
-    <dependency>
-        <groupId>org.springframework</groupId>
-        <artifactId>spring-web</artifactId>
-        <version>${spring.framework.version}</version>
-    </dependency>
-    <dependency>
-        <groupId>org.springframework</groupId>
-        <artifactId>spring-beans</artifactId>
-        <version>${spring.framework.version}</version>
-    </dependency>
-
-    <!-- CXF -->
-    <dependency>
-        <groupId>org.apache.cxf</groupId>
-        <artifactId>cxf-rt-frontend-jaxrs</artifactId>
-        <version>${cxf.version}</version>
-    </dependency>
-    <dependency>
-        <groupId>org.apache.httpcomponents</groupId>
-        <artifactId>httpclient</artifactId>
-        <version>${http.client.version}</version>
-    </dependency>
-
-    <dependency>
-        <groupId>javax.ws.rs</groupId>
-        <artifactId>javax.ws.rs-api</artifactId>
-        <version>${ws.rs.version}</version>
-    </dependency>
-
-    <!-- Other Stuff-->
-    <!--dependency>
-        <groupId>cglib</groupId>
-        <artifactId>cglib-nodep</artifactId>
-        <version>${cglib.nodep.version}</version>
-        <scope>runtime</scope>
-    </dependency-->
-
-    <!-- Java Stuff -->
-    <dependency>
-        <groupId>javax.inject</groupId>
-        <artifactId>javax.inject</artifactId>
-        <version>${javax.inject.version}</version>
-        <scope>provided</scope>
-    </dependency>
-        <dependency>
-            <groupId>javax.ws.rs</groupId>
-            <artifactId>javax.ws.rs-api</artifactId>
-            <version>${ws.rs.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>com.sun.jersey</groupId>
-            <artifactId>jersey-core</artifactId>
-            <version>1.19.1</version>
-            <exclusions>
-                <exclusion>
-                    <groupId>javax.ws.rs</groupId>
-                    <artifactId>jsr311-api</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>io.swagger</groupId>
-            <artifactId>swagger-annotations</artifactId>
-            <version>1.5.3</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc.onboarding</groupId>
-            <artifactId>validation-rest-types</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>com.fasterxml.jackson.core</groupId>
-            <artifactId>jackson-annotations</artifactId>
-            <version>2.7.4</version>
-        </dependency>
-        <dependency>
-            <groupId>com.fasterxml.jackson.dataformat</groupId>
-            <artifactId>jackson-dataformat-xml</artifactId>
-            <version>2.7.4</version>
-        </dependency>
-        <dependency>
-            <groupId>org.codehaus.woodstox</groupId>
-            <artifactId>woodstox-core-asl</artifactId>
-            <version>4.4.1</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-vendor-software-product-manager</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>com.sun.jersey.contribs</groupId>
-            <artifactId>jersey-multipart</artifactId>
-            <version>1.18.1</version>
-            <scope>provided</scope>
-        </dependency>
-
-
-    </dependencies>
-
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-surefire-plugin</artifactId>
-                <configuration>
-                    <includes>
-                        <include>test/core/unittest/offline/**</include>
-                    </includes>
-                    <skipTests>true</skipTests>
-                </configuration>
-            </plugin>
-            <!-- Error codes generator plugin -->
-            <!--plugin>
-                <groupId>org.openecomp.nfv.tools</groupId>
-                <artifactId>error-codes-maven-plugin</artifactId>
-            </plugin-->
-        </plugins>
-    </build>
-    
-</project>
\ No newline at end of file
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/validation-rest/validation-rest-types/pom.xml.versionsBackup b/openecomp-be/api/openecomp-sdc-rest-webapp/validation-rest/validation-rest-types/pom.xml.versionsBackup
deleted file mode 100644
index 5cc8ee7..0000000
--- a/openecomp-be/api/openecomp-sdc-rest-webapp/validation-rest/validation-rest-types/pom.xml.versionsBackup
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <artifactId>validation-rest-types</artifactId>
-    <name>validation-rest-types</name>
-
-    <parent>
-        <groupId>org.openecomp.sdc.onboarding</groupId>
-        <artifactId>validation-rest</artifactId>
-        <version>1.0-SNAPSHOT</version>
-        <relativePath>../</relativePath>
-    </parent>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-common-rest</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-validation-manager</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-    </dependencies>
-
-</project>
\ No newline at end of file
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/pom.xml.versionsBackup b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/pom.xml.versionsBackup
deleted file mode 100644
index ae9c306..0000000
--- a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/pom.xml.versionsBackup
+++ /dev/null
@@ -1,23 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-	<modelVersion>4.0.0</modelVersion>
-
-	<groupId>org.openecomp.sdc.onboarding</groupId>
-	<artifactId>vendor-license-rest</artifactId>
-	<name>vendor-license-rest</name>
-	<version>1.0-SNAPSHOT</version>
-	<packaging>pom</packaging>
-
-	<parent>
-		<groupId>org.openecomp.sdc</groupId>
-		<artifactId>openecomp-sdc-rest-webapp</artifactId>
-		<version>1.0-SNAPSHOT</version>
-		<relativePath>../</relativePath>
-	</parent>
-
-	<modules>
-		<module>/vendor-license-rest-services</module>
-		<module>/vendor-license-rest-types</module>
-	</modules>
-
-</project>
\ No newline at end of file
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/pom.xml.versionsBackup b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/pom.xml.versionsBackup
deleted file mode 100644
index 187135e..0000000
--- a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/pom.xml.versionsBackup
+++ /dev/null
@@ -1,135 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-		 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-	<modelVersion>4.0.0</modelVersion>
-
-	<artifactId>vendor-license-rest-services</artifactId>
-	<name>vendor-license-rest-services</name>
-
-	<parent>
-		<groupId>org.openecomp.sdc.onboarding</groupId>
-		<artifactId>vendor-license-rest</artifactId>
-		<version>1.0-SNAPSHOT</version>
-		<relativePath>../</relativePath>
-	</parent>
-
-
-	<properties>
-		<errorcode.dir>${project.build.directory}/generated-sources/error-codes</errorcode.dir>
-	</properties>
-
-	<dependencies>
-		<dependency>
-			<groupId>${project.groupId}</groupId>
-			<artifactId>vendor-license-rest-types</artifactId>
-			<version>${project.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>org.openecomp.sdc</groupId>
-			<artifactId>openecomp-sdc-vendor-license-api</artifactId>
-			<version>${project.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>org.openecomp.sdc</groupId>
-			<artifactId>openecomp-sdc-vendor-license-manager</artifactId>
-			<version>${project.version}</version>
-		</dependency>
-
-
-		<!-- Spring -->
-		<dependency>
-			<groupId>org.springframework</groupId>
-			<artifactId>spring-core</artifactId>
-			<version>${spring.framework.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>org.springframework</groupId>
-			<artifactId>spring-context</artifactId>
-			<version>${spring.framework.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>org.springframework</groupId>
-			<artifactId>spring-context-support</artifactId>
-			<version>${spring.framework.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>org.springframework</groupId>
-			<artifactId>spring-web</artifactId>
-			<version>${spring.framework.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>org.springframework</groupId>
-			<artifactId>spring-beans</artifactId>
-			<version>${spring.framework.version}</version>
-		</dependency>
-
-		<!-- CXF -->
-		<dependency>
-			<groupId>org.apache.cxf</groupId>
-			<artifactId>cxf-rt-frontend-jaxrs</artifactId>
-			<version>${cxf.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.httpcomponents</groupId>
-			<artifactId>httpclient</artifactId>
-			<version>${http.client.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.httpcomponents</groupId>
-			<artifactId>httpcore</artifactId>
-			<version>${http.client.version}</version>
-		</dependency>
-
-		<dependency>
-			<groupId>javax.ws.rs</groupId>
-			<artifactId>javax.ws.rs-api</artifactId>
-			<version>${ws.rs.version}</version>
-		</dependency>
-
-		<!-- Other Stuff-->
-		<!--dependency>
-			<groupId>cglib</groupId>
-			<artifactId>cglib-nodep</artifactId>
-			<version>${cglib.nodep.version}</version>
-			<scope>runtime</scope>
-		</dependency-->
-
-		<!-- Java Stuff -->
-		<dependency>
-			<groupId>javax.inject</groupId>
-			<artifactId>javax.inject</artifactId>
-			<version>${javax.inject.version}</version>
-			<scope>provided</scope>
-		</dependency>
-		<dependency>
-			<groupId>org.openecomp.sdc</groupId>
-			<artifactId>openecomp-sdc-vendor-software-product-manager</artifactId>
-			<version>1.0-SNAPSHOT</version>
-		</dependency>
-
-	</dependencies>
-
-
-	<build>
-		<plugins>
-			<plugin>
-				<groupId>org.apache.maven.plugins</groupId>
-				<artifactId>maven-surefire-plugin</artifactId>
-				<configuration>
-					<includes>
-						<include>test/core/unittest/offline/**</include>
-					</includes>
-					<skipTests>true</skipTests>
-				</configuration>
-			</plugin>
-			<!-- Error codes generator plugin -->
-			<!--plugin>
-				<groupId>org.openecomp.nfv.tools</groupId>
-				<artifactId>error-codes-maven-plugin</artifactId>
-			</plugin-->
-		</plugins>
-	</build>
-
-
-
-
-</project>
\ No newline at end of file
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapEntitlementPoolEntityToEntitlementPoolEntityDto.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapEntitlementPoolEntityToEntitlementPoolEntityDto.java
index d35c06c..21293ab 100644
--- a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapEntitlementPoolEntityToEntitlementPoolEntityDto.java
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapEntitlementPoolEntityToEntitlementPoolEntityDto.java
@@ -22,7 +22,6 @@
 
 import org.openecomp.sdc.vendorlicense.dao.types.EntitlementPoolEntity;
 import org.openecomp.sdcrests.mapping.MappingBase;
-import org.openecomp.sdcrests.vendorlicense.types.ChoiceOrOtherDto;
 import org.openecomp.sdcrests.vendorlicense.types.EntitlementPoolEntityDto;
 import org.openecomp.sdcrests.vendorlicense.types.MultiChoiceOrOtherDto;
 
@@ -39,14 +38,9 @@
 
     MapChoiceOrOtherToChoiceOrOtherDto choiceOrOtherMapper =
         new MapChoiceOrOtherToChoiceOrOtherDto();
-    target.setEntitlementMetric(
-        choiceOrOtherMapper.applyMapping(source.getEntitlementMetric(), ChoiceOrOtherDto.class));
-    target.setAggregationFunction(
-        choiceOrOtherMapper.applyMapping(source.getAggregationFunction(), ChoiceOrOtherDto.class));
     target.setOperationalScope(new MapMultiChoiceOrOtherToMultiChoiceOrOtherDto()
         .applyMapping(source.getOperationalScope(), MultiChoiceOrOtherDto.class));
-    target.setTime(choiceOrOtherMapper.applyMapping(source.getTime(), ChoiceOrOtherDto.class));
-    target.setManufacturerReferenceNumber(source.getManufacturerReferenceNumber());
+
     target.setReferencingFeatureGroups(source.getReferencingFeatureGroups());
 
     target.setStartDate(source.getStartDate());
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapEntitlementPoolRequestDtoToEntitlementPoolEntity.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapEntitlementPoolRequestDtoToEntitlementPoolEntity.java
index 5442e1a..9b215d6 100644
--- a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapEntitlementPoolRequestDtoToEntitlementPoolEntity.java
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapEntitlementPoolRequestDtoToEntitlementPoolEntity.java
@@ -20,7 +20,6 @@
 
 package org.openecomp.sdcrests.vendorlicense.rest.mapping;
 
-import org.openecomp.sdc.vendorlicense.dao.types.ChoiceOrOther;
 import org.openecomp.sdc.vendorlicense.dao.types.EntitlementPoolEntity;
 import org.openecomp.sdc.vendorlicense.dao.types.MultiChoiceOrOther;
 import org.openecomp.sdcrests.mapping.MappingBase;
@@ -35,17 +34,11 @@
     target.setThresholdValue(source.getThresholdValue());
     target.setThresholdUnit(source.getThresholdUnits());
     target.setIncrements(source.getIncrements());
-
     MapChoiceOrOtherDtoToChoiceOrOther choiceOrOtherMapper =
         new MapChoiceOrOtherDtoToChoiceOrOther();
-    target.setEntitlementMetric(
-        choiceOrOtherMapper.applyMapping(source.getEntitlementMetric(), ChoiceOrOther.class));
-    target.setAggregationFunction(
-        choiceOrOtherMapper.applyMapping(source.getAggregationFunction(), ChoiceOrOther.class));
     target.setOperationalScope(new MapMultiChoiceOrOtherDtoToMultiChoiceOrOther()
         .applyMapping(source.getOperationalScope(), MultiChoiceOrOther.class));
-    target.setTime(choiceOrOtherMapper.applyMapping(source.getTime(), ChoiceOrOther.class));
-    target.setManufacturerReferenceNumber(source.getManufacturerReferenceNumber());
+
     target.setStartDate(source.getStartDate());
     target.setExpiryDate(source.getExpiryDate());
   }
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapLicenseKeyGroupEntityToLicenseKeyGroupEntityDto.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapLicenseKeyGroupEntityToLicenseKeyGroupEntityDto.java
index 3838471..66618e8 100644
--- a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapLicenseKeyGroupEntityToLicenseKeyGroupEntityDto.java
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapLicenseKeyGroupEntityToLicenseKeyGroupEntityDto.java
@@ -36,5 +36,10 @@
     target.setOperationalScope(new MapMultiChoiceOrOtherToMultiChoiceOrOtherDto()
         .applyMapping(source.getOperationalScope(), MultiChoiceOrOtherDto.class));
     target.setReferencingFeatureGroups(source.getReferencingFeatureGroups());
+    target.setStartDate(source.getStartDate());
+    target.setExpiryDate(source.getExpiryDate());
+    target.setThresholdUnits(source.getThresholdUnits());
+    target.setThresholdValue(source.getThresholdValue());
+    target.setIncrements(source.getIncrements());
   }
 }
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapLicenseKeyGroupRequestDtoToLicenseKeyGroupEntity.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapLicenseKeyGroupRequestDtoToLicenseKeyGroupEntity.java
index aee27c8..4682a46 100644
--- a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapLicenseKeyGroupRequestDtoToLicenseKeyGroupEntity.java
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/mapping/MapLicenseKeyGroupRequestDtoToLicenseKeyGroupEntity.java
@@ -34,5 +34,10 @@
     target.setType(source.getType());
     target.setOperationalScope(new MapMultiChoiceOrOtherDtoToMultiChoiceOrOther()
         .applyMapping(source.getOperationalScope(), MultiChoiceOrOther.class));
+    target.setStartDate(source.getStartDate());
+    target.setExpiryDate(source.getExpiryDate());
+    target.setThresholdUnits(source.getThresholdUnits());
+    target.setThresholdValue(source.getThresholdValue());
+    target.setIncrements(source.getIncrements());
   }
 }
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/services/FeatureGroupsImpl.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/services/FeatureGroupsImpl.java
index e41942d..99ac3cd 100644
--- a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/services/FeatureGroupsImpl.java
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-services/src/main/java/org/openecomp/sdcrests/vendorlicense/rest/services/FeatureGroupsImpl.java
@@ -80,6 +80,7 @@
       fgDto.setLicenseKeyGroupsIds(fg.getLicenseKeyGroupIds());
       fgDto.setEntitlementPoolsIds(fg.getEntitlementPoolIds());
       fgDto.setReferencingLicenseAgreements(fg.getReferencingLicenseAgreements());
+      fgDto.setManufacturerReferenceNumber(fg.getManufacturerReferenceNumber());
       outputMapper.doMapping(fg, fgDto);
       results.add(fgDto);
     }
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/pom.xml.versionsBackup b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/pom.xml.versionsBackup
deleted file mode 100644
index d24c315..0000000
--- a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/pom.xml.versionsBackup
+++ /dev/null
@@ -1,29 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-	<modelVersion>4.0.0</modelVersion>
-
-	<artifactId>vendor-license-rest-types</artifactId>
-	<name>vendor-license-rest-types</name>
-	<version>1.0-SNAPSHOT</version>
-
-	<parent>
-		<groupId>org.openecomp.sdc.onboarding</groupId>
-		<artifactId>vendor-license-rest</artifactId>
-		<version>1.0-SNAPSHOT</version>
-		<relativePath>../</relativePath>
-	</parent>
-
-	<dependencies>
-		<dependency>
-			<groupId>org.openecomp.sdc</groupId>
-			<artifactId>openecomp-sdc-common-rest</artifactId>
-			<version>${project.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>org.openecomp.sdc</groupId>
-			<artifactId>openecomp-sdc-vendor-license-manager</artifactId>
-			<version>${project.version}</version>
-		</dependency>
-	</dependencies>
-
-</project>
\ No newline at end of file
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/EntitlementPoolRequestDto.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/EntitlementPoolRequestDto.java
index b49a138..79cf750 100644
--- a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/EntitlementPoolRequestDto.java
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/EntitlementPoolRequestDto.java
@@ -33,7 +33,7 @@
 import javax.validation.constraints.Size;
 
 @ApiModel(value = "EntitlementPoolRequest")
-//@JsonIgnoreProperties(value = {"manufacturerReferenceNumber"})
+@JsonIgnoreProperties({"manufacturerReferenceNumber", "time", "aggregationFunction", "entitlementMetric"})
 public class EntitlementPoolRequestDto {
 
   @NotNull
@@ -46,23 +46,11 @@
   private Integer thresholdValue;
 
   private ThresholdUnit thresholdUnits;
-  @NotNull
-  @Valid
-  private ChoiceOrOtherDto<EntitlementMetric> entitlementMetric;
   @Size(max = 120)
   private String increments;
-  @NotNull
-  @Valid
-  private ChoiceOrOtherDto<AggregationFunction> aggregationFunction;
 
   @Valid
   private MultiChoiceOrOtherDto<OperationalScope> operationalScope;
-  @NotNull
-  @Valid
-  private ChoiceOrOtherDto<EntitlementTime> time;
-  @NotNull
-  @Size(max = 100)
-  private String manufacturerReferenceNumber;
 
   private String startDate;
   private String expiryDate;
@@ -99,14 +87,6 @@
     this.thresholdUnits = thresholdUnits;
   }
 
-  public ChoiceOrOtherDto<EntitlementMetric> getEntitlementMetric() {
-    return entitlementMetric;
-  }
-
-  public void setEntitlementMetric(ChoiceOrOtherDto<EntitlementMetric> entitlementMetric) {
-    this.entitlementMetric = entitlementMetric;
-  }
-
   public String getIncrements() {
     return increments;
   }
@@ -115,14 +95,6 @@
     this.increments = increments;
   }
 
-  public ChoiceOrOtherDto<AggregationFunction> getAggregationFunction() {
-    return aggregationFunction;
-  }
-
-  public void setAggregationFunction(ChoiceOrOtherDto<AggregationFunction> aggregationFunction) {
-    this.aggregationFunction = aggregationFunction;
-  }
-
   public MultiChoiceOrOtherDto<OperationalScope> getOperationalScope() {
     return operationalScope;
   }
@@ -131,22 +103,6 @@
     this.operationalScope = operationalScope;
   }
 
-  public ChoiceOrOtherDto<EntitlementTime> getTime() {
-    return time;
-  }
-
-  public void setTime(ChoiceOrOtherDto<EntitlementTime> time) {
-    this.time = time;
-  }
-
-  public String getManufacturerReferenceNumber() {
-    return manufacturerReferenceNumber;
-  }
-
-  public void setManufacturerReferenceNumber(String manufacturerReferenceNumber) {
-    this.manufacturerReferenceNumber = manufacturerReferenceNumber;
-  }
-
   public String getStartDate() {
     return startDate;
   }
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/FeatureGroupDescriptorDto.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/FeatureGroupDescriptorDto.java
index f2d0d65..56b3c25 100644
--- a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/FeatureGroupDescriptorDto.java
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/FeatureGroupDescriptorDto.java
@@ -35,7 +35,7 @@
   @NotNull
   private String partNumber;
 
-  //@NotBlank(message = "is mandatory and should not be empty")
+  @NotBlank(message = "is mandatory and should not be empty")
   @Size(max = 100)
   private String manufacturerReferenceNumber;
 
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/LicenseKeyGroupRequestDto.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/LicenseKeyGroupRequestDto.java
index a9072f5..fb56f85 100644
--- a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/LicenseKeyGroupRequestDto.java
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-license-rest/vendor-license-rest-types/src/main/java/org/openecomp/sdcrests/vendorlicense/types/LicenseKeyGroupRequestDto.java
@@ -22,6 +22,7 @@
 
 import org.openecomp.sdc.vendorlicense.dao.types.LicenseKeyType;
 import org.openecomp.sdc.vendorlicense.dao.types.OperationalScope;
+import org.openecomp.sdc.vendorlicense.dao.types.ThresholdUnit;
 
 import javax.validation.Valid;
 import javax.validation.constraints.NotNull;
@@ -39,6 +40,16 @@
   @Valid
   private MultiChoiceOrOtherDto<OperationalScope> operationalScope;
 
+  private String startDate;
+  private String expiryDate;
+
+  private Integer thresholdValue;
+
+  private ThresholdUnit thresholdUnits;
+
+  @Size(max = 120)
+  private String increments;
+
   public String getName() {
     return name;
   }
@@ -70,4 +81,44 @@
   public void setOperationalScope(MultiChoiceOrOtherDto<OperationalScope> operationalScope) {
     this.operationalScope = operationalScope;
   }
+
+  public String getStartDate() {
+    return startDate;
+  }
+
+  public void setStartDate(String startDate) {
+    this.startDate = startDate;
+  }
+
+  public String getExpiryDate() {
+    return expiryDate;
+  }
+
+  public void setExpiryDate(String expiryDate) {
+    this.expiryDate = expiryDate;
+  }
+
+  public Integer getThresholdValue() {
+    return thresholdValue;
+  }
+
+  public void setThresholdValue(Integer thresholdValue) {
+    this.thresholdValue = thresholdValue;
+  }
+
+  public ThresholdUnit getThresholdUnits() {
+    return thresholdUnits;
+  }
+
+  public void setThresholdUnits(ThresholdUnit thresholdUnits) {
+    this.thresholdUnits = thresholdUnits;
+  }
+
+  public String getIncrements() {
+    return increments;
+  }
+
+  public void setIncrements(String increments) {
+    this.increments = increments;
+  }
 }
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/pom.xml.versionsBackup b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/pom.xml.versionsBackup
deleted file mode 100644
index 074c8d9..0000000
--- a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/pom.xml.versionsBackup
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <groupId>org.openecomp.sdc.onboarding</groupId>
-    <artifactId>vendor-software-products-rest</artifactId>
-    <name>vendor-software-products-rest</name>
-    <version>1.0-SNAPSHOT</version>
-    <packaging>pom</packaging>
-
-    <parent>
-        <groupId>org.openecomp.sdc</groupId>
-        <artifactId>openecomp-sdc-rest-webapp</artifactId>
-        <version>1.0-SNAPSHOT</version>
-    </parent>
-    <modules>
-        <module>/vendor-software-products-rest-services</module>
-        <module>/vendor-software-products-rest-types</module>
-    </modules>
-</project>
\ No newline at end of file
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/pom.xml.versionsBackup b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/pom.xml.versionsBackup
deleted file mode 100644
index ba28146..0000000
--- a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/pom.xml.versionsBackup
+++ /dev/null
@@ -1,153 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <artifactId>vendor-software-products-rest-services</artifactId>
-    <parent>
-        <groupId>org.openecomp.sdc.onboarding</groupId>
-        <artifactId>vendor-software-products-rest</artifactId>
-        <version>1.0-SNAPSHOT</version>
-    </parent>
-
-    <dependencies>
-    <dependency>
-        <groupId>org.springframework</groupId>
-        <artifactId>spring-core</artifactId>
-        <version>${spring.framework.version}</version>
-    </dependency>
-    <dependency>
-        <groupId>org.springframework</groupId>
-        <artifactId>spring-context</artifactId>
-        <version>${spring.framework.version}</version>
-    </dependency>
-    <dependency>
-        <groupId>org.springframework</groupId>
-        <artifactId>spring-context-support</artifactId>
-        <version>${spring.framework.version}</version>
-    </dependency>
-    <dependency>
-        <groupId>org.springframework</groupId>
-        <artifactId>spring-web</artifactId>
-        <version>${spring.framework.version}</version>
-    </dependency>
-    <dependency>
-        <groupId>org.springframework</groupId>
-        <artifactId>spring-beans</artifactId>
-        <version>${spring.framework.version}</version>
-    </dependency>
-
-    <!-- CXF -->
-    <dependency>
-        <groupId>org.apache.cxf</groupId>
-        <artifactId>cxf-rt-frontend-jaxrs</artifactId>
-        <version>${cxf.version}</version>
-    </dependency>
-    <dependency>
-        <groupId>org.apache.httpcomponents</groupId>
-        <artifactId>httpclient</artifactId>
-        <version>${http.client.version}</version>
-    </dependency>
-
-    <dependency>
-        <groupId>javax.ws.rs</groupId>
-        <artifactId>javax.ws.rs-api</artifactId>
-        <version>${ws.rs.version}</version>
-    </dependency>
-
-    <!-- Other Stuff-->
-    <!--dependency>
-        <groupId>cglib</groupId>
-        <artifactId>cglib-nodep</artifactId>
-        <version>${cglib.nodep.version}</version>
-        <scope>runtime</scope>
-    </dependency-->
-
-    <!-- Java Stuff -->
-    <dependency>
-        <groupId>javax.inject</groupId>
-        <artifactId>javax.inject</artifactId>
-        <version>${javax.inject.version}</version>
-        <scope>provided</scope>
-    </dependency>
-        <dependency>
-            <groupId>javax.ws.rs</groupId>
-            <artifactId>javax.ws.rs-api</artifactId>
-            <version>${ws.rs.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>com.sun.jersey</groupId>
-            <artifactId>jersey-core</artifactId>
-            <version>1.19.1</version>
-            <exclusions>
-                <exclusion>
-                    <groupId>javax.ws.rs</groupId>
-                    <artifactId>jsr311-api</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>io.swagger</groupId>
-            <artifactId>swagger-annotations</artifactId>
-            <version>1.5.3</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc.onboarding</groupId>
-            <artifactId>vendor-software-products-rest-types</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>com.fasterxml.jackson.core</groupId>
-            <artifactId>jackson-annotations</artifactId>
-            <version>2.7.4</version>
-        </dependency>
-        <dependency>
-            <groupId>com.fasterxml.jackson.dataformat</groupId>
-            <artifactId>jackson-dataformat-xml</artifactId>
-            <version>2.7.4</version>
-        </dependency>
-        <dependency>
-            <groupId>org.codehaus.woodstox</groupId>
-            <artifactId>woodstox-core-asl</artifactId>
-            <version>4.4.1</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-vendor-software-product-manager</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>com.sun.jersey.contribs</groupId>
-            <artifactId>jersey-multipart</artifactId>
-            <version>1.18.1</version>
-            <scope>provided</scope>
-        </dependency>
-
-
-    </dependencies>
-
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-surefire-plugin</artifactId>
-                <configuration>
-                    <includes>
-                        <include>test/core/unittest/offline/**</include>
-                    </includes>
-                    <skipTests>true</skipTests>
-                </configuration>
-            </plugin>
-            <!-- Error codes generator plugin -->
-            <!--plugin>
-                <groupId>org.openecomp.nfv.tools</groupId>
-                <artifactId>error-codes-maven-plugin</artifactId>
-            </plugin-->
-        </plugins>
-    </build>
-    
-</project>
\ No newline at end of file
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/services/OrchestrationTemplateCandidateImpl.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/services/OrchestrationTemplateCandidateImpl.java
index d5eb961..0793e94 100644
--- a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/services/OrchestrationTemplateCandidateImpl.java
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/services/OrchestrationTemplateCandidateImpl.java
@@ -3,6 +3,8 @@
 import org.apache.commons.beanutils.BeanUtils;
 import org.openecomp.core.validation.errors.ErrorMessagesFormatBuilder;
 import org.openecomp.sdc.common.errors.Messages;
+import org.openecomp.sdc.datatypes.error.ErrorLevel;
+import org.openecomp.sdc.datatypes.error.ErrorMessage;
 import org.openecomp.sdc.logging.api.Logger;
 import org.openecomp.sdc.logging.api.LoggerFactory;
 import org.openecomp.sdc.logging.context.MdcUtil;
@@ -30,6 +32,9 @@
 import java.io.IOException;
 import java.io.InputStream;
 import java.lang.reflect.InvocationTargetException;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
 import java.util.Optional;
 
 @Named
@@ -82,9 +87,12 @@
     OrchestrationTemplateActionResponseDto responseDto =
         new OrchestrationTemplateActionResponseDto();
     BeanUtils.copyProperties(responseDto, response);
+
     return Response.ok(responseDto).build();
   }
 
+
+
   @Override
   public Response updateFilesDataStructure(
       String vspId, String versionId, FileDataStructureDto fileDataStructureDto, String user)
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/services/VendorSoftwareProductsImpl.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/services/VendorSoftwareProductsImpl.java
index 6dcb63d..9c642eb 100644
--- a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/services/VendorSoftwareProductsImpl.java
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/main/java/org/openecomp/sdcrests/vsp/rest/services/VendorSoftwareProductsImpl.java
@@ -25,6 +25,7 @@
 import org.openecomp.sdc.common.errors.CoreException;
 import org.openecomp.sdc.common.errors.ErrorCode;
 import org.openecomp.sdc.datatypes.error.ErrorLevel;
+import org.openecomp.sdc.datatypes.error.ErrorMessage;
 import org.openecomp.sdc.logging.api.Logger;
 import org.openecomp.sdc.logging.api.LoggerFactory;
 import org.openecomp.sdc.logging.context.MdcUtil;
@@ -75,6 +76,8 @@
 import java.util.Collection;
 import java.util.List;
 
+import static org.openecomp.sdc.logging.messages.AuditMessages.SUBMIT_VSP_ERROR;
+
 
 @Named
 @Service("vendorSoftwareProducts")
@@ -206,8 +209,8 @@
     switch (request.getAction()) {
       case Checkout:
         MDC.put(LoggerConstants.SERVICE_NAME, LoggerServiceName.Checkout_VSP.toString());
-        logger.audit(AuditMessages.AUDIT_MSG + AuditMessages.CHECK_OUT_VSP + vspId);
         vendorSoftwareProductManager.checkout(vspId, user);
+        logger.audit(AuditMessages.AUDIT_MSG + AuditMessages.CHECK_OUT_VSP + vspId);
         break;
       case Undo_Checkout:
         MDC.put(LoggerConstants.SERVICE_NAME, LoggerServiceName.Undo_Checkout_VSP.toString());
@@ -215,18 +218,28 @@
         break;
       case Checkin:
         MDC.put(LoggerConstants.SERVICE_NAME, LoggerServiceName.Checkin_VSP.toString());
-        logger.audit(AuditMessages.AUDIT_MSG + AuditMessages.CHECK_IN_VSP + vspId);
         vendorSoftwareProductManager.checkin(vspId, user);
+        logger.audit(AuditMessages.AUDIT_MSG + AuditMessages.CHECK_IN_VSP + vspId);
         break;
       case Submit:
         MDC.put(LoggerConstants.SERVICE_NAME, LoggerServiceName.Submit_VSP.toString());
-        logger.audit(AuditMessages.AUDIT_MSG + AuditMessages.SUBMIT_VSP + vspId);
         ValidationResponse validationResponse = vendorSoftwareProductManager.submit(vspId, user);
         if (!validationResponse.isValid()) {
+          logger.audit(AuditMessages.AUDIT_MSG + AuditMessages.SUBMIT_VSP_FAIL + vspId);
+          if (validationResponse.getVspErrors() != null) {
+            validationResponse.getVspErrors().forEach(errorCode -> logger.audit(AuditMessages
+                .AUDIT_MSG + String.format(SUBMIT_VSP_ERROR, errorCode.message(), vspId)));
+          }
+          if (validationResponse.getUploadDataErrors() != null) {
+            validationResponse.getUploadDataErrors().values().forEach(errorMessages
+                -> printAuditForErrors(errorMessages, vspId, SUBMIT_VSP_ERROR));
+          }
+
           return Response.status(Response.Status.EXPECTATION_FAILED).entity(
               new MapValidationResponseToDto()
                   .applyMapping(validationResponse, ValidationResponseDto.class)).build();
         }
+        logger.audit(AuditMessages.AUDIT_MSG + AuditMessages.SUBMIT_VSP + vspId);
         break;
       case Create_Package:
         MDC.put(LoggerConstants.SERVICE_NAME, LoggerServiceName.Create_Package.toString());
@@ -371,4 +384,14 @@
 
     return Response.ok(results).build();
   }
+
+  private void printAuditForErrors(List<ErrorMessage> errorList, String vspId, String auditType) {
+
+    errorList.forEach(errorMessage -> {
+      if (errorMessage.getLevel().equals(ErrorLevel.ERROR)) {
+        logger.audit(AuditMessages.AUDIT_MSG + String.format(auditType, errorMessage.getMessage(),
+            vspId));
+      }
+    });
+  }
 }
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-types/pom.xml.versionsBackup b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-types/pom.xml.versionsBackup
deleted file mode 100644
index 7fb5fd7..0000000
--- a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-types/pom.xml.versionsBackup
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <artifactId>vendor-software-products-rest-types</artifactId>
-    <name>vendor-software-products-rest-types</name>
-
-    <parent>
-        <groupId>org.openecomp.sdc.onboarding</groupId>
-        <artifactId>vendor-software-products-rest</artifactId>
-        <version>1.0-SNAPSHOT</version>
-        <relativePath>../</relativePath>
-    </parent>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-common-rest</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-vendor-software-product-manager</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-    </dependencies>
-
-</project>
\ No newline at end of file
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-types/src/main/java/org/openecomp/sdcrests/vendorsoftwareproducts/types/ComputeDetailsDto.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-types/src/main/java/org/openecomp/sdcrests/vendorsoftwareproducts/types/ComputeDetailsDto.java
index 4b7889b..92ad0fd 100644
--- a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-types/src/main/java/org/openecomp/sdcrests/vendorsoftwareproducts/types/ComputeDetailsDto.java
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-types/src/main/java/org/openecomp/sdcrests/vendorsoftwareproducts/types/ComputeDetailsDto.java
@@ -8,7 +8,6 @@
 public class ComputeDetailsDto implements CompositionDataEntityDto {
   @NotBlank(message = "is mandatory and should not be empty")
   @Size(min = 0, max = 30, message = "length should not exceed 30 characters.")
-  @Pattern(regexp = "^[a-zA-Z 0-9._-]*$", message = "must match \"^[a-zA-Z 0-9._-]*$\"")
   private String name;
   @Size(min = 0, max = 300, message = "length should not exceed 300 characters.")
   private String description;
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-types/src/main/java/org/openecomp/sdcrests/vendorsoftwareproducts/types/DeploymentFlavorRequestDto.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-types/src/main/java/org/openecomp/sdcrests/vendorsoftwareproducts/types/DeploymentFlavorRequestDto.java
index 54ce63b..baf6707 100644
--- a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-types/src/main/java/org/openecomp/sdcrests/vendorsoftwareproducts/types/DeploymentFlavorRequestDto.java
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-types/src/main/java/org/openecomp/sdcrests/vendorsoftwareproducts/types/DeploymentFlavorRequestDto.java
@@ -10,7 +10,6 @@
 
 public class DeploymentFlavorRequestDto {
     @NotBlank(message = "is mandatory and should not be empty")
-    @Pattern(regexp = "^[a-zA-Z 0-9._-]*$", message = "must match \"^[a-zA-Z 0-9._-]*$\"")
     @Size(min = 0, max = 30,message = "length should not exceed 30 characters.")
     private String model;
     @Size(min = 0, max = 300,message = "length should not exceed 300 characters.")
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-types/src/main/java/org/openecomp/sdcrests/vendorsoftwareproducts/types/ImageRequestDto.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-types/src/main/java/org/openecomp/sdcrests/vendorsoftwareproducts/types/ImageRequestDto.java
index 6164522..4386245 100644
--- a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-types/src/main/java/org/openecomp/sdcrests/vendorsoftwareproducts/types/ImageRequestDto.java
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-types/src/main/java/org/openecomp/sdcrests/vendorsoftwareproducts/types/ImageRequestDto.java
@@ -8,7 +8,6 @@
 public class ImageRequestDto implements CompositionDataEntityDto {
 
   @NotBlank(message = "is mandatory and should not be empty")
-  @Pattern(regexp = "^[a-zA-Z 0-9._-]*$", message = "must match \"^[a-zA-Z 0-9._-]*$\"")
   private String fileName;
   private String description;
   /*private String version;
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-types/src/main/java/org/openecomp/sdcrests/vendorsoftwareproducts/types/NicRequestDto.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-types/src/main/java/org/openecomp/sdcrests/vendorsoftwareproducts/types/NicRequestDto.java
index fba85b6..fdf953c 100644
--- a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-types/src/main/java/org/openecomp/sdcrests/vendorsoftwareproducts/types/NicRequestDto.java
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-types/src/main/java/org/openecomp/sdcrests/vendorsoftwareproducts/types/NicRequestDto.java
@@ -29,7 +29,6 @@
 public class NicRequestDto {
 
   @NotBlank(message = "is mandatory and should not be empty")
-  @Pattern(regexp = "^[a-zA-Z 0-9._-]*$", message = "must match \"^[a-zA-Z 0-9._-]*$\"")
   private String name;
   private String description;
   private String networkId;
diff --git a/openecomp-be/api/pom.xml.versionsBackup b/openecomp-be/api/pom.xml.versionsBackup
deleted file mode 100644
index 4c41573..0000000
--- a/openecomp-be/api/pom.xml.versionsBackup
+++ /dev/null
@@ -1,21 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-	<modelVersion>4.0.0</modelVersion>
-
-	<artifactId>openecomp-sdc-api</artifactId>
-	<name>openecomp-sdc-api</name>
-	<version>1.0-SNAPSHOT</version>
-	<packaging>pom</packaging>
-	<url>http://maven.apache.org</url>
-
-	<parent>
-		<groupId>org.openecomp.sdc</groupId>
-		<artifactId>openecomp-sdc</artifactId>
-		<version>1.0-SNAPSHOT</version>
-	</parent>
-
-	<modules>
-		<module>/openecomp-sdc-rest-webapp</module>
-	</modules>
-
-</project>
\ No newline at end of file
diff --git a/openecomp-be/backend/openecomp-sdc-action-manager/pom.xml.versionsBackup b/openecomp-be/backend/openecomp-sdc-action-manager/pom.xml.versionsBackup
deleted file mode 100644
index 21cfd19..0000000
--- a/openecomp-be/backend/openecomp-sdc-action-manager/pom.xml.versionsBackup
+++ /dev/null
@@ -1,76 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <artifactId>openecomp-sdc-action-manager</artifactId>
-    <version>1.0-SNAPSHOT</version>
-    <dependencies>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-utilities-lib</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-validation-core</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-nosqldb-core</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.testng</groupId>
-            <artifactId>testng</artifactId>
-            <version>6.9.10</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <version>RELEASE</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>com.fasterxml.jackson.dataformat</groupId>
-            <artifactId>jackson-dataformat-xml</artifactId>
-            <version>2.7.4</version>
-        </dependency>
-        <dependency>
-            <groupId>org.codehaus.woodstox</groupId>
-            <artifactId>woodstox-core-asl</artifactId>
-            <version>4.4.1</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-action-core</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-versioning-core</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-logging-api</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-logging-core</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-    </dependencies>
-
-    <parent>
-        <groupId>org.openecomp.sdc</groupId>
-        <artifactId>backend</artifactId>
-        <version>1.0-SNAPSHOT</version>
-    </parent>
-
-
-</project>
\ No newline at end of file
diff --git a/openecomp-be/backend/openecomp-sdc-application-config-manager/pom.xml.versionsBackup b/openecomp-be/backend/openecomp-sdc-application-config-manager/pom.xml.versionsBackup
deleted file mode 100644
index a9cc7a3..0000000
--- a/openecomp-be/backend/openecomp-sdc-application-config-manager/pom.xml.versionsBackup
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <groupId>org.openecomp.sdc</groupId>
-    <artifactId>openecomp-sdc-application-config-manager</artifactId>
-    <version>1.0-SNAPSHOT</version>
-    <dependencies>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-config-lib</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.testng</groupId>
-            <artifactId>testng</artifactId>
-            <version>6.9.10</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-logging-core</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-    </dependencies>
-
-    <parent>
-        <groupId>org.openecomp.sdc</groupId>
-        <artifactId>backend</artifactId>
-        <version>1.0-SNAPSHOT</version>
-    </parent>
-
-    
-</project>
\ No newline at end of file
diff --git a/openecomp-be/backend/openecomp-sdc-healthcheck-manager/pom.xml b/openecomp-be/backend/openecomp-sdc-healthcheck-manager/pom.xml
index ea105b1..359d940 100644
--- a/openecomp-be/backend/openecomp-sdc-healthcheck-manager/pom.xml
+++ b/openecomp-be/backend/openecomp-sdc-healthcheck-manager/pom.xml
@@ -80,4 +80,4 @@
             </plugin>
         </plugins>
     </build>
-</project>
+</project>
\ No newline at end of file
diff --git a/openecomp-be/backend/openecomp-sdc-validation-manager/pom.xml.versionsBackup b/openecomp-be/backend/openecomp-sdc-validation-manager/pom.xml.versionsBackup
deleted file mode 100644
index 4d678ad..0000000
--- a/openecomp-be/backend/openecomp-sdc-validation-manager/pom.xml.versionsBackup
+++ /dev/null
@@ -1,78 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <artifactId>openecomp-sdc-validation-manager</artifactId>
-    <version>1.0-SNAPSHOT</version>
-    <dependencies>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-utilities-lib</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-heat-lib</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.testng</groupId>
-            <artifactId>testng</artifactId>
-            <version>6.9.10</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <version>RELEASE</version>
-            <scope>test</scope>
-        </dependency>
-
-        <!--dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-translator-api</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency-->
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-translator-core</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>com.fasterxml.jackson.dataformat</groupId>
-            <artifactId>jackson-dataformat-xml</artifactId>
-            <version>2.7.4</version>
-        </dependency>
-        <dependency>
-            <groupId>org.codehaus.woodstox</groupId>
-            <artifactId>woodstox-core-asl</artifactId>
-            <version>4.4.1</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-vendor-license-core</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-validation-api</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-common-lib</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-    </dependencies>
-
-
-    <parent>
-        <groupId>org.openecomp.sdc</groupId>
-        <artifactId>backend</artifactId>
-        <version>1.0-SNAPSHOT</version>
-    </parent>
-
-    
-</project>
\ No newline at end of file
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-license-manager/pom.xml.versionsBackup b/openecomp-be/backend/openecomp-sdc-vendor-license-manager/pom.xml.versionsBackup
deleted file mode 100644
index 85b34a1..0000000
--- a/openecomp-be/backend/openecomp-sdc-vendor-license-manager/pom.xml.versionsBackup
+++ /dev/null
@@ -1,77 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <name>openecomp-sdc-vendor-license-manager</name>
-    <artifactId>openecomp-sdc-vendor-license-manager</artifactId>
-
-    <parent>
-        <artifactId>backend</artifactId>
-        <groupId>org.openecomp.sdc</groupId>
-        <version>1.0-SNAPSHOT</version>
-    </parent>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-vendor-license-core</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.mockito</groupId>
-            <artifactId>mockito-all</artifactId>
-            <scope>test</scope>
-            <version>1.10.19</version>
-        </dependency>
-        <dependency>
-            <groupId>org.testng</groupId>
-            <artifactId>testng</artifactId>
-            <scope>test</scope>
-            <version>6.8.5</version>
-            <exclusions>
-                <exclusion>
-                    <artifactId>snakeyaml</artifactId>
-                    <groupId>org.yaml</groupId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <scope>test</scope>
-            <version>4.11</version>
-        </dependency>
-        <dependency>
-            <groupId>javax.el</groupId>
-            <artifactId>javax.el-api</artifactId>
-            <version>${javax.el-api.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.glassfish.web</groupId>
-            <artifactId>javax.el</artifactId>
-            <version>2.2.4</version>
-        </dependency>
-        <dependency>
-            <groupId>org.codehaus.woodstox</groupId>
-            <artifactId>woodstox-core-asl</artifactId>
-            <version>4.4.1</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-vendor-software-product-manager</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>com.fasterxml.jackson.dataformat</groupId>
-            <artifactId>jackson-dataformat-xml</artifactId>
-            <version>2.7.4</version>
-        </dependency>
-        <!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
-        <dependency>
-            <groupId>commons-io</groupId>
-            <artifactId>commons-io</artifactId>
-            <version>${commons.io.version}</version>
-        </dependency>
-
-    </dependencies>
-</project>
\ No newline at end of file
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/main/java/org/openecomp/sdc/vendorlicense/impl/VendorLicenseManagerImpl.java b/openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/main/java/org/openecomp/sdc/vendorlicense/impl/VendorLicenseManagerImpl.java
index 622ff02..b570170 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/main/java/org/openecomp/sdc/vendorlicense/impl/VendorLicenseManagerImpl.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/main/java/org/openecomp/sdc/vendorlicense/impl/VendorLicenseManagerImpl.java
@@ -365,9 +365,7 @@
                                                           String user) {
     mdcDataDebugMessage.debugEntryMessage("VLM id", vlmId);
     mdcDataDebugMessage.debugExitMessage("VLM id", vlmId);
-    return featureGroupDao.list(new FeatureGroupEntity(vlmId, VersioningUtil
-        .resolveVersion(version, getVersionInfo(vlmId, VersionableEntityAction.Read, user), user),
-        null));
+    return vendorLicenseFacade.listFeatureGroups(vlmId, version, user);
   }
 
   @Override
@@ -487,15 +485,6 @@
         .debugEntryMessage("VLM id", entitlementPool.getVendorLicenseModelId());
     mdcDataDebugMessage
         .debugExitMessage("VLM id", entitlementPool.getVendorLicenseModelId());
-    validateCreateDate(entitlementPool);
-    return vendorLicenseFacade.createEntitlementPool(entitlementPool, user);
-  }
-
-  private void validateCreateDate(EntitlementPoolEntity entitlementPool){
-    mdcDataDebugMessage.debugEntryMessage("Start date and end date", entitlementPool.getStartDate
-        ()+"   "+entitlementPool.getExpiryDate());
-
-    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy'T'HH:mm:ss'Z'");
 
     entitlementPool.setStartDate(entitlementPool.getStartDate() != null ? (entitlementPool
         .getStartDate().trim().length() != 0 ? entitlementPool.getStartDate()+"T00:00:00Z"
@@ -504,40 +493,49 @@
         .getExpiryDate().trim().length() != 0 ? entitlementPool.getExpiryDate()+"T23:59:59Z"
         : null) : null);
 
-    if(entitlementPool.getStartDate() != null && entitlementPool.getExpiryDate() != null) {
-      if (LocalDate.parse(entitlementPool.getStartDate(), formatter).atStartOfDay().isBefore
-          (LocalDate.now().atStartOfDay()) ||
-          LocalDate.parse(entitlementPool.getExpiryDate(), formatter).atStartOfDay()
-              .isEqual(LocalDate.now().atStartOfDay()) ||
-          LocalDate.parse(entitlementPool.getExpiryDate(), formatter)
-              .isBefore(LocalDate.parse(entitlementPool.getStartDate(), formatter))) {
+    validateCreateDate(entitlementPool.getStartDate(), entitlementPool.getExpiryDate(),
+        entitlementPool.getVendorLicenseModelId());
+    return vendorLicenseFacade.createEntitlementPool(entitlementPool, user);
+  }
+
+  private void validateCreateDate(String startDate, String expiryDate, String vendorLicenseModelId){
+    mdcDataDebugMessage.debugEntryMessage("Start date and end date", startDate
+        +"   "+expiryDate);
+
+    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy'T'HH:mm:ss'Z'");
+
+    if(startDate != null && expiryDate != null) {
+      if (LocalDate.parse(startDate, formatter).atStartOfDay().isBefore
+          (LocalDate.now().atStartOfDay()) || LocalDate.parse(expiryDate, formatter).atStartOfDay()
+              .isEqual(LocalDate.parse(startDate, formatter).atStartOfDay()) || LocalDate
+          .parse(expiryDate, formatter).isBefore(LocalDate.parse(startDate, formatter))) {
         MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
             LoggerTragetServiceName.VALIDATE_DATE_RANGE,ErrorLevel.ERROR.name(),
             LoggerErrorCode.DATA_ERROR.getErrorCode(), LoggerErrorDescription.INVALID_VALUE);
         throw new CoreException(
-            new InvalidDateErrorBuilder(entitlementPool.getVendorLicenseModelId())
+            new InvalidDateErrorBuilder(vendorLicenseModelId)
                 .build());
       }
     }
 
-    if(entitlementPool.getStartDate() != null && entitlementPool.getExpiryDate() == null) {
-      if (LocalDate.parse(entitlementPool.getStartDate(), formatter).atStartOfDay().isBefore
+    if(startDate != null && expiryDate == null) {
+      if (LocalDate.parse(startDate, formatter).atStartOfDay().isBefore
           (LocalDate.now().atStartOfDay())) {
         MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
             LoggerTragetServiceName.VALIDATE_DATE_RANGE,ErrorLevel.ERROR.name(),
             LoggerErrorCode.DATA_ERROR.getErrorCode(), LoggerErrorDescription.INVALID_VALUE);
         throw new CoreException(
-            new InvalidDateErrorBuilder(entitlementPool.getVendorLicenseModelId())
+            new InvalidDateErrorBuilder(vendorLicenseModelId)
                 .build());
       }
     }
 
-    if(entitlementPool.getStartDate() == null && entitlementPool.getExpiryDate() != null) {
+    if(startDate == null && expiryDate != null) {
       MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
           LoggerTragetServiceName.VALIDATE_DATE_RANGE,ErrorLevel.ERROR.name(),
           LoggerErrorCode.DATA_ERROR.getErrorCode(), LoggerErrorDescription.INVALID_VALUE);
       throw new CoreException(
-          new InvalidDateErrorBuilder(entitlementPool.getVendorLicenseModelId())
+          new InvalidDateErrorBuilder(vendorLicenseModelId)
               .build());
 
     }
@@ -545,39 +543,31 @@
     mdcDataDebugMessage.debugExitMessage(null,null);
   }
 
-  private void validateUpdateDate(EntitlementPoolEntity entitlementPool){
-    mdcDataDebugMessage.debugEntryMessage("Start date and end date", entitlementPool.getStartDate
-        ()+"   "+entitlementPool.getExpiryDate());
+  private void validateUpdateDate(String startDate, String expiryDate, String vendorLicenseModelId){
+    mdcDataDebugMessage.debugEntryMessage("Start date and end date", startDate
+        +"   "+ expiryDate);
 
     DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy'T'HH:mm:ss'Z'");
 
-    entitlementPool.setStartDate(entitlementPool.getStartDate() != null ? (entitlementPool
-        .getStartDate().trim().length() != 0 ? entitlementPool.getStartDate()+"T00:00:00Z"
-        : null) : null);
-    entitlementPool.setExpiryDate(entitlementPool.getExpiryDate() != null ? (entitlementPool
-        .getExpiryDate().trim().length() != 0 ? entitlementPool.getExpiryDate()+"T23:59:59Z"
-        : null) : null);
-
-    if(entitlementPool.getStartDate() != null && entitlementPool.getExpiryDate() != null) {
-      if (LocalDate.parse(entitlementPool.getExpiryDate(), formatter).atStartOfDay()
-          .isEqual(LocalDate.parse(entitlementPool.getStartDate(), formatter).atStartOfDay()) ||
-          LocalDate.parse(entitlementPool.getExpiryDate(), formatter)
-              .isBefore(LocalDate.parse(entitlementPool.getStartDate(), formatter))) {
+    if(startDate != null && expiryDate != null) {
+      if (LocalDate.parse(expiryDate, formatter).atStartOfDay()
+          .isEqual(LocalDate.parse(startDate, formatter).atStartOfDay()) ||
+          LocalDate.parse(expiryDate, formatter).isBefore(LocalDate.parse(startDate, formatter))) {
         MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
             LoggerTragetServiceName.VALIDATE_DATE_RANGE,ErrorLevel.ERROR.name(),
             LoggerErrorCode.DATA_ERROR.getErrorCode(), LoggerErrorDescription.INVALID_VALUE);
         throw new CoreException(
-            new InvalidDateErrorBuilder(entitlementPool.getVendorLicenseModelId())
+            new InvalidDateErrorBuilder(vendorLicenseModelId)
                 .build());
       }
     }
 
-    if(entitlementPool.getStartDate() == null && entitlementPool.getExpiryDate() != null) {
+    if(startDate == null && expiryDate != null) {
       MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
           LoggerTragetServiceName.VALIDATE_DATE_RANGE,ErrorLevel.ERROR.name(),
           LoggerErrorCode.DATA_ERROR.getErrorCode(), LoggerErrorDescription.INVALID_VALUE);
       throw new CoreException(
-          new InvalidDateErrorBuilder(entitlementPool.getVendorLicenseModelId())
+          new InvalidDateErrorBuilder(vendorLicenseModelId)
               .build());
 
     }
@@ -590,7 +580,15 @@
     mdcDataDebugMessage.debugEntryMessage("VLM id, EP id", entitlementPool
         .getVendorLicenseModelId(), entitlementPool.getId());
 
-    validateUpdateDate(entitlementPool);
+    entitlementPool.setStartDate(entitlementPool.getStartDate() != null ? (entitlementPool
+        .getStartDate().trim().length() != 0 ? entitlementPool.getStartDate()+"T00:00:00Z"
+        : null) : null);
+    entitlementPool.setExpiryDate(entitlementPool.getExpiryDate() != null ? (entitlementPool
+        .getExpiryDate().trim().length() != 0 ? entitlementPool.getExpiryDate()+"T23:59:59Z"
+        : null) : null);
+
+    validateUpdateDate(entitlementPool.getStartDate(), entitlementPool.getExpiryDate(),
+        entitlementPool.getVendorLicenseModelId());
     Version version = VersioningUtil.resolveVersion(entitlementPool.getVersion(),
         getVersionInfo(entitlementPool.getVendorLicenseModelId(), VersionableEntityAction.Write,
             user), user);
@@ -692,6 +690,16 @@
 
     mdcDataDebugMessage.debugExitMessage("VLM id", licenseKeyGroup
         .getVendorLicenseModelId());
+
+    licenseKeyGroup.setStartDate(licenseKeyGroup.getStartDate() != null ? (licenseKeyGroup
+        .getStartDate().trim().length() != 0 ? licenseKeyGroup.getStartDate()+"T00:00:00Z"
+        : null) : null);
+    licenseKeyGroup.setExpiryDate(licenseKeyGroup.getExpiryDate() != null ? (licenseKeyGroup
+        .getExpiryDate().trim().length() != 0 ? licenseKeyGroup.getExpiryDate()+"T23:59:59Z"
+        : null) : null);
+
+    validateCreateDate(licenseKeyGroup.getStartDate(), licenseKeyGroup.getExpiryDate(),
+        licenseKeyGroup.getVendorLicenseModelId());
     return vendorLicenseFacade.createLicenseKeyGroup(licenseKeyGroup, user);
   }
 
@@ -700,6 +708,16 @@
     mdcDataDebugMessage.debugEntryMessage("VLM id, LKG id", licenseKeyGroup
         .getVendorLicenseModelId(), licenseKeyGroup.getId());
 
+    licenseKeyGroup.setStartDate(licenseKeyGroup.getStartDate() != null ? (licenseKeyGroup
+        .getStartDate().trim().length() != 0 ? licenseKeyGroup.getStartDate()+"T00:00:00Z"
+        : null) : null);
+    licenseKeyGroup.setExpiryDate(licenseKeyGroup.getExpiryDate() != null ? (licenseKeyGroup
+        .getExpiryDate().trim().length() != 0 ? licenseKeyGroup.getExpiryDate()+"T23:59:59Z"
+        : null) : null);
+
+    validateUpdateDate(licenseKeyGroup.getStartDate(), licenseKeyGroup.getExpiryDate(),
+        licenseKeyGroup.getVendorLicenseModelId());
+
     Version version = VersioningUtil.resolveVersion(licenseKeyGroup.getVersion(),
         getVersionInfo(licenseKeyGroup.getVendorLicenseModelId(), VersionableEntityAction.Write,
             user), user);
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/test/java/org/openecomp/sdc/vendorlicense/EntitlementPoolTest.java b/openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/test/java/org/openecomp/sdc/vendorlicense/EntitlementPoolTest.java
index 9b079de..620c6fb 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/test/java/org/openecomp/sdc/vendorlicense/EntitlementPoolTest.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/test/java/org/openecomp/sdc/vendorlicense/EntitlementPoolTest.java
@@ -89,15 +89,9 @@
         entitlementPool.setDescription(desc);
         entitlementPool.setThresholdValue(threshold);
         entitlementPool.setThresholdUnit(thresholdUnit);
-        entitlementPool
-                .setEntitlementMetric(new ChoiceOrOther<>(entitlementMetricChoice, entitlementMetricOther));
         entitlementPool.setIncrements(increments);
-        entitlementPool.setAggregationFunction(
-                new ChoiceOrOther<>(aggregationFunctionChoice, aggregationFunctionOther));
         entitlementPool.setOperationalScope(
                 new MultiChoiceOrOther<>(operationalScopeChoices, operationalScopeOther));
-        entitlementPool.setTime(new ChoiceOrOther<>(timeChoice, timeOther));
-        entitlementPool.setManufacturerReferenceNumber(sku);
         return entitlementPool;
     }
 
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/test/java/org/openecomp/sdc/vendorlicense/LicenseKeyGroupTest.java b/openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/test/java/org/openecomp/sdc/vendorlicense/LicenseKeyGroupTest.java
index 782d93a..04f7c79 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/test/java/org/openecomp/sdc/vendorlicense/LicenseKeyGroupTest.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/test/java/org/openecomp/sdc/vendorlicense/LicenseKeyGroupTest.java
@@ -29,6 +29,7 @@
 import org.openecomp.sdc.vendorlicense.dao.LicenseKeyGroupDao;
 import org.openecomp.sdc.vendorlicense.dao.LimitDao;
 import org.openecomp.sdc.vendorlicense.dao.types.*;
+import org.openecomp.sdc.vendorlicense.errors.VendorLicenseErrorCodes;
 import org.openecomp.sdc.vendorlicense.facade.VendorLicenseFacade;
 import org.openecomp.sdc.vendorlicense.impl.VendorLicenseManagerImpl;
 import org.openecomp.sdc.versioning.dao.types.Version;
@@ -41,6 +42,10 @@
 import java.lang.reflect.Field;
 import java.lang.reflect.Modifier;
 import java.util.ArrayList;
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
+import java.util.Collection;
+import java.util.Collections;
 import java.util.HashSet;
 import java.util.Set;
 
@@ -54,6 +59,8 @@
     private  final String USER = "lkgTestUser";
     private  final String LKG_NAME = "LKG name";
     private  final String LT_NAME = "LT name";
+    private final String LKG1_NAME = "LKG1 name";
+    private final String USER1 = "user1";
 
     @Mock
     private VendorLicenseFacade vendorLicenseFacade;
@@ -186,8 +193,193 @@
         }
     }
 
+  @Test
+  public void createTest() {
+    Set<OperationalScope> opScopeChoices;
+    opScopeChoices = new HashSet<>();
+    opScopeChoices.add(OperationalScope.Core);
+    opScopeChoices.add(OperationalScope.CPU);
+    opScopeChoices.add(OperationalScope.Network_Wide);
+    LicenseKeyGroupEntity lkg =
+        createLicenseKeyGroup("vlm1Id", null, LKG1_NAME, "LKG1 dec",LicenseKeyType.Unique,
+            new MultiChoiceOrOther<>(opScopeChoices, null));
+    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy");
+    lkg.setStartDate(LocalDate.now().format(formatter));
+    lkg.setExpiryDate(LocalDate.now().plusDays(1L).format(formatter));
+
+    vendorLicenseManagerImpl.createLicenseKeyGroup(lkg, USER1);
+  }
+
+  @Test
+  public void createWithInvalidStartExpiryDateTest() {
+    try {
+
+      Set<OperationalScope> opScopeChoices;
+      opScopeChoices = new HashSet<>();
+      opScopeChoices.add(OperationalScope.Core);
+      opScopeChoices.add(OperationalScope.CPU);
+      opScopeChoices.add(OperationalScope.Network_Wide);
+      LicenseKeyGroupEntity lkg =
+          createLicenseKeyGroup("vlm1Id", null, LKG1_NAME, "LKG1 dec",LicenseKeyType.Unique,
+              new MultiChoiceOrOther<>(opScopeChoices, null));
+      DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy");
+      lkg.setStartDate(LocalDate.now().format(formatter));
+      lkg.setExpiryDate(LocalDate.now().minusDays(2L).format(formatter));
+      vendorLicenseManagerImpl.createLicenseKeyGroup(lkg, USER1);
+      Assert.fail();
+    } catch (CoreException exception) {
+      Assert.assertEquals(exception.code().id(), VendorLicenseErrorCodes.DATE_RANGE_INVALID);
+    }
+  }
+
+  @Test
+  public void createWithoutStartDateTest() {
+    try {
+
+      Set<OperationalScope> opScopeChoices;
+      opScopeChoices = new HashSet<>();
+      opScopeChoices.add(OperationalScope.Core);
+      opScopeChoices.add(OperationalScope.CPU);
+      opScopeChoices.add(OperationalScope.Network_Wide);
+      LicenseKeyGroupEntity lkg =
+          createLicenseKeyGroup("vlm1Id", null, LKG1_NAME, "LKG1 dec",LicenseKeyType.Unique,
+              new MultiChoiceOrOther<>(opScopeChoices, null));
+      DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy");
+      lkg.setExpiryDate(LocalDate.now().plusDays(2L).format(formatter));
+      vendorLicenseManagerImpl.createLicenseKeyGroup(lkg, USER1).getId();
+      Assert.fail();
+    } catch (CoreException exception) {
+      Assert.assertEquals(exception.code().id(), VendorLicenseErrorCodes.DATE_RANGE_INVALID);
+    }
+  }
+
+  @Test
+  public void createWithSameStartExpiryDateTest() {
+    try {
+
+      Set<OperationalScope> opScopeChoices;
+      opScopeChoices = new HashSet<>();
+      opScopeChoices.add(OperationalScope.Core);
+      opScopeChoices.add(OperationalScope.CPU);
+      opScopeChoices.add(OperationalScope.Network_Wide);
+      LicenseKeyGroupEntity lkg =
+          createLicenseKeyGroup("vlm1Id", null, LKG1_NAME, "LKG1 dec",LicenseKeyType.Unique,
+              new MultiChoiceOrOther<>(opScopeChoices, null));
+      DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy");
+      lkg.setStartDate(LocalDate.now().plusDays(2L).format(formatter));
+      lkg.setExpiryDate(LocalDate.now().plusDays(2L).format(formatter));
+      vendorLicenseManagerImpl.createLicenseKeyGroup(lkg, USER1).getId();
+      Assert.fail();
+    } catch (CoreException exception) {
+      Assert.assertEquals(exception.code().id(), VendorLicenseErrorCodes.DATE_RANGE_INVALID);
+    }
+  }
+
+  @Test
+  public void createUpdate() {
+    Set<OperationalScope> opScopeChoices;
+    opScopeChoices = new HashSet<>();
+    opScopeChoices.add(OperationalScope.Core);
+    opScopeChoices.add(OperationalScope.CPU);
+    opScopeChoices.add(OperationalScope.Network_Wide);
+    LicenseKeyGroupEntity lkg =
+        createLicenseKeyGroup("vlm1Id", null, LKG1_NAME, "LKG1 dec",LicenseKeyType.Unique,
+            new MultiChoiceOrOther<>(opScopeChoices, null));
+    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy");
+    lkg.setStartDate(LocalDate.now().minusDays(3L).format(formatter));
+    lkg.setExpiryDate(LocalDate.now().minusDays(2L).format(formatter));
+    VersionInfo info = new VersionInfo();
+    Version version = new Version();
+    info.getViewableVersions().add(version);
+    info.setActiveVersion(version);
+    doReturn(info).when(vendorLicenseFacade).getVersionInfo(anyObject(),anyObject(),anyObject());
+
+    vendorLicenseManagerImpl.updateLicenseKeyGroup(lkg, USER1);
+  }
+
+  @Test
+  public void updateWithInvalidStartExpiryDateTest() {
+    try {
+
+      Set<OperationalScope> opScopeChoices;
+      opScopeChoices = new HashSet<>();
+      opScopeChoices.add(OperationalScope.Core);
+      opScopeChoices.add(OperationalScope.CPU);
+      opScopeChoices.add(OperationalScope.Network_Wide);
+      LicenseKeyGroupEntity lkg =
+          createLicenseKeyGroup("vlm1Id", null, LKG1_NAME, "LKG1 dec",LicenseKeyType.Unique,
+              new MultiChoiceOrOther<>(opScopeChoices, null));
+      DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy");
+      lkg.setStartDate(LocalDate.now().format(formatter));
+      lkg.setExpiryDate(LocalDate.now().minusDays(2L).format(formatter));
+      vendorLicenseManagerImpl.updateLicenseKeyGroup(lkg, USER1);
+      Assert.fail();
+    } catch (CoreException exception) {
+      Assert.assertEquals(exception.code().id(), VendorLicenseErrorCodes.DATE_RANGE_INVALID);
+    }
+  }
+
+  @Test
+  public void updateWithoutStartDateTest() {
+    try {
+
+      Set<OperationalScope> opScopeChoices;
+      opScopeChoices = new HashSet<>();
+      opScopeChoices.add(OperationalScope.Core);
+      opScopeChoices.add(OperationalScope.CPU);
+      opScopeChoices.add(OperationalScope.Network_Wide);
+      LicenseKeyGroupEntity lkg =
+          createLicenseKeyGroup("vlm1Id", null, LKG1_NAME, "LKG1 dec",LicenseKeyType.Unique,
+              new MultiChoiceOrOther<>(opScopeChoices, null));
+      DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy");
+      lkg.setExpiryDate(LocalDate.now().plusDays(2L).format(formatter));
+      vendorLicenseManagerImpl.updateLicenseKeyGroup(lkg, USER1);
+      Assert.fail();
+    } catch (CoreException exception) {
+      Assert.assertEquals(exception.code().id(), VendorLicenseErrorCodes.DATE_RANGE_INVALID);
+    }
+  }
+
+  @Test
+  public void updateWithSameStartExpiryDateTest() {
+    try {
+
+      Set<OperationalScope> opScopeChoices;
+      opScopeChoices = new HashSet<>();
+      opScopeChoices.add(OperationalScope.Core);
+      opScopeChoices.add(OperationalScope.CPU);
+      opScopeChoices.add(OperationalScope.Network_Wide);
+      LicenseKeyGroupEntity lkg =
+          createLicenseKeyGroup("vlm1Id", null, LKG1_NAME, "LKG1 dec",LicenseKeyType.Unique,
+              new MultiChoiceOrOther<>(opScopeChoices, null));
+      DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy");
+      lkg.setStartDate(LocalDate.now().format(formatter));
+      lkg.setExpiryDate(LocalDate.now().format(formatter));
+      vendorLicenseManagerImpl.updateLicenseKeyGroup(lkg, USER1);
+      Assert.fail();
+    } catch (CoreException exception) {
+      Assert.assertEquals(exception.code().id(), VendorLicenseErrorCodes.DATE_RANGE_INVALID);
+    }
+  }
+
+
+  public static LicenseKeyGroupEntity createLicenseKeyGroup(String vlmId, Version version,
+                                                            String name, String desc,
+                                                            LicenseKeyType type,
+                                                            MultiChoiceOrOther<OperationalScope> operationalScope) {
+    LicenseKeyGroupEntity licenseKeyGroup = new LicenseKeyGroupEntity();
+    licenseKeyGroup.setVendorLicenseModelId(vlmId);
+    licenseKeyGroup.setVersion(version);
+    licenseKeyGroup.setName(name);
+    licenseKeyGroup.setDescription(desc);
+    licenseKeyGroup.setType(type);
+    licenseKeyGroup.setOperationalScope(operationalScope);
+    return licenseKeyGroup;
+  }
+
   /*public static final String LKG1_NAME = "LKG1 name";
   private static final Version VERSION01 = new Version(0, 1);
+  public static final String LKG1_NAME = "LKG1 name";
   private static final String USER1 = "user1";
   public static String vlm1Id;
   public static String vlm2Id;
@@ -211,7 +403,12 @@
     return licenseKeyGroup;
   }
 
-  @BeforeClass
+  @BeforeMethod
+  public void setUp() throws Exception {
+    MockitoAnnotations.initMocks(this);
+  }
+
+  /*@BeforeClass
   private void init() {
     licenseKeyGroupDao = LicenseKeyGroupDaoFactory.getInstance().createInterface();
     noSqlDb = NoSqlDbFactory.getInstance().createInterface();
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/test/java/org/openecomp/sdc/vendorlicense/VendorLicenseFacadeImplTest.java b/openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/test/java/org/openecomp/sdc/vendorlicense/VendorLicenseFacadeImplTest.java
index 58db488..40bbc77 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/test/java/org/openecomp/sdc/vendorlicense/VendorLicenseFacadeImplTest.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-license-manager/src/test/java/org/openecomp/sdc/vendorlicense/VendorLicenseFacadeImplTest.java
@@ -1,18 +1,27 @@
 package org.openecomp.sdc.vendorlicense;
 
+import org.junit.Assert;
 import org.mockito.InjectMocks;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.mockito.Spy;
 import org.openecomp.sdc.vendorlicense.dao.*;
+import org.openecomp.sdc.vendorlicense.dao.types.EntitlementPoolEntity;
 import org.openecomp.sdc.vendorlicense.dao.types.FeatureGroupEntity;
 import org.openecomp.sdc.vendorlicense.facade.impl.VendorLicenseFacadeImpl;
+import org.openecomp.sdc.vendorlicense.impl.VendorLicenseManagerImpl;
 import org.openecomp.sdc.versioning.VersioningManager;
 import org.openecomp.sdc.versioning.dao.types.Version;
+import org.openecomp.sdc.versioning.types.VersionInfo;
 import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
 
+import java.lang.reflect.Field;
+import java.lang.reflect.Modifier;
+import java.util.ArrayList;
+import java.util.Collection;
 import java.util.HashSet;
+import java.util.List;
 import java.util.Set;
 
 import static org.mockito.Matchers.anyObject;
@@ -21,12 +30,16 @@
 import static org.mockito.Mockito.verify;
 
 /**
- * Created by diveshm on 7/3/2017.
+ * This test just verifies Feature Group Get and List APIs.
  */
 public class VendorLicenseFacadeImplTest {
     //JUnit Test Cases using Mockito
     private static final Version VERSION01 = new Version(0, 1);
-    private final String FG1_NAME = "FG1 name";
+    public static final String EP1 = "ep1";
+    public static final String MRN = "mrn";
+    public static final String VLM_ID = "VLM_ID";
+    public static final String USER = "USER1";
+
 
     @Mock
     private VendorLicenseModelDao vendorLicenseModelDao;
@@ -50,78 +63,101 @@
     @Spy
     private VendorLicenseFacadeImpl vendorLicenseFacadeImpl;
 
-    public FeatureGroupEntity createFeatureGroup(String vlmId, Version version, String id, String name, String desc,
-                                                 String partNumber, String manufacturerReferenceNumber, Set<String>
-                                                         licenseKeyGroupIds, Set<String> entitlementPoolIds, Set<String>
-                                                         referencingLicenseAgreements){
-        FeatureGroupEntity featureGroup = new FeatureGroupEntity(vlmId, version, id);
-        featureGroup.setVendorLicenseModelId(vlmId);
-        featureGroup.setVersion(version);
-        featureGroup.setId(id);
-        featureGroup.setName(name);
-        featureGroup.setDescription(desc);
-        featureGroup.setPartNumber(partNumber);
-        //featureGroup.setManufacturerReferenceNumber(manufacturerReferenceNumber);
-        featureGroup.setLicenseKeyGroupIds(licenseKeyGroupIds);
-        featureGroup.setEntitlementPoolIds(entitlementPoolIds);
-        featureGroup.setReferencingLicenseAgreements(referencingLicenseAgreements);
-
-        return featureGroup;
-    }
-
     @BeforeMethod
     public void setUp() throws Exception{
         MockitoAnnotations.initMocks(this);
     }
 
     @Test
-    public void testCreate(){
-        Set<String> licenseKeyGroupIds;
-        licenseKeyGroupIds = new HashSet<>();
-        licenseKeyGroupIds.add("lkg1");
+    public void testGetFeatureGroupWhenMRNNull () {
+        resetFieldModifiers();
+
+        FeatureGroupEntity featureGroup = createFeatureGroup();
+
+        VersionInfo info = new VersionInfo();
+        info.getViewableVersions().add(VERSION01);
+        info.setActiveVersion(VERSION01);
 
         Set<String> entitlementPoolIds;
         entitlementPoolIds = new HashSet<>();
-        entitlementPoolIds.add("ep1");
+        entitlementPoolIds.add(EP1);
 
-        Set<String> referencingLicenseAgreements;
-        referencingLicenseAgreements = new HashSet<>();
-        referencingLicenseAgreements.add("la1");
+        EntitlementPoolEntity ep = createEP();
 
-        FeatureGroupEntity featureGroupEntity = createFeatureGroup("vlmId", VERSION01, "fgId", FG1_NAME, "fg1 desc",
-                "partNumber", "MRN", licenseKeyGroupIds, entitlementPoolIds,
-                referencingLicenseAgreements);
+        featureGroup.setEntitlementPoolIds(entitlementPoolIds);
 
-        doReturn(featureGroupEntity).when(featureGroupDao).get(anyObject());
-
-        /*if(featureGroupEntity.getManufacturerReferenceNumber() != null)
-            featureGroupDao.create(featureGroupEntity);
-        verify(featureGroupDao).create(anyObject());*/
+        doReturn(info).when(vendorLicenseFacadeImpl).getVersionInfo(anyObject(),anyObject(),anyObject());
+        doReturn(featureGroup).when(featureGroupDao).get(featureGroup);
+        doReturn(ep).when(entitlementPoolDao).get(anyObject());
+        doReturn(MRN).when(entitlementPoolDao).getManufacturerReferenceNumber(anyObject());
+        FeatureGroupEntity retrieved = vendorLicenseFacadeImpl.getFeatureGroup(featureGroup, USER);
+        Assert.assertEquals(MRN, retrieved.getManufacturerReferenceNumber());
     }
 
     @Test
-    public void testCreateWithoutManufacturerReferenceNumber(){
-        Set<String> licenseKeyGroupIds;
-        licenseKeyGroupIds = new HashSet<>();
-        licenseKeyGroupIds.add("lkg1");
+    public void testListFeatureGroups () {
+        resetFieldModifiers();
+
+        FeatureGroupEntity featureGroup = createFeatureGroup();
+
+        Collection<FeatureGroupEntity> featureGroups = new ArrayList<FeatureGroupEntity>();
+        featureGroups.add(featureGroup);
+
+        VersionInfo info = new VersionInfo();
+        info.getViewableVersions().add(VERSION01);
+        info.setActiveVersion(VERSION01);
+
+        EntitlementPoolEntity ep = createEP();
+
+        doReturn(info).when(vendorLicenseFacadeImpl).getVersionInfo(anyObject(),anyObject(),anyObject());
+        doReturn(featureGroup).when(featureGroupDao).get(featureGroup);
+        doReturn(ep).when(entitlementPoolDao).get(anyObject());
+        doReturn(MRN).when(entitlementPoolDao).getManufacturerReferenceNumber(anyObject());
+        Collection<FeatureGroupEntity> retrieved = vendorLicenseFacadeImpl.listFeatureGroups(VLM_ID,
+            VERSION01, USER);
+        retrieved.stream().forEach(fg -> Assert.assertEquals(MRN,fg.getManufacturerReferenceNumber()));
+    }
+
+    private void resetFieldModifiers() {
+        try {
+            Field fgField = VendorLicenseFacadeImpl.class.getDeclaredField("featureGroupDao");
+            fgField.setAccessible(true);
+            Field modifiersField = Field.class.getDeclaredField("modifiers");
+            modifiersField.setAccessible(true);
+            modifiersField.setInt(fgField, fgField.getModifiers() & ~Modifier.FINAL);
+            fgField.set(null, featureGroupDao);
+
+            Field epField = VendorLicenseFacadeImpl.class.getDeclaredField("entitlementPoolDao");
+            epField.setAccessible(true);
+            modifiersField = Field.class.getDeclaredField("modifiers");
+            modifiersField.setAccessible(true);
+            modifiersField.setInt(epField, epField.getModifiers() & ~Modifier.FINAL);
+            epField.set(null, entitlementPoolDao);
+        } catch(NoSuchFieldException | IllegalAccessException e)
+        {
+            org.testng.Assert.fail();
+        }
+    }
+
+    private FeatureGroupEntity createFeatureGroup() {
+        FeatureGroupEntity featureGroup = new FeatureGroupEntity(VLM_ID, VERSION01, USER);
+        featureGroup.setManufacturerReferenceNumber(null);
+        VersionInfo info = new VersionInfo();
+        info.getViewableVersions().add(VERSION01);
+        info.setActiveVersion(VERSION01);
 
         Set<String> entitlementPoolIds;
         entitlementPoolIds = new HashSet<>();
-        entitlementPoolIds.add("ep1");
+        entitlementPoolIds.add(EP1);
 
-        Set<String> referencingLicenseAgreements;
-        referencingLicenseAgreements = new HashSet<>();
-        referencingLicenseAgreements.add("la1");
-
-        FeatureGroupEntity featureGroupEntity = createFeatureGroup("vlmId", VERSION01, "fgId", FG1_NAME, "fg1 desc",
-                "partNumber", null, licenseKeyGroupIds, entitlementPoolIds,
-                referencingLicenseAgreements);
-        doReturn(featureGroupEntity).when(featureGroupDao).get(anyObject());
-
-        /*if(featureGroupEntity.getManufacturerReferenceNumber() != null)
-            featureGroupDao.create(featureGroupEntity);
-
-        verify(featureGroupDao, never()).create(anyObject());*/
-
+        featureGroup.setEntitlementPoolIds(entitlementPoolIds);
+        return featureGroup;
     }
+
+    private EntitlementPoolEntity createEP() {
+        EntitlementPoolEntity ep = new EntitlementPoolEntity(VLM_ID,VERSION01, EP1);
+        ep.setManufacturerReferenceNumber(MRN);
+        return ep;
+    }
+
 }
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/VSPPackage.zip b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/VSPPackage.zip
deleted file mode 100644
index ca55484..0000000
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/VSPPackage.zip
+++ /dev/null
Binary files differ
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/pom.xml.versionsBackup b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/pom.xml.versionsBackup
deleted file mode 100644
index 839a192..0000000
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/pom.xml.versionsBackup
+++ /dev/null
@@ -1,159 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <artifactId>openecomp-sdc-vendor-software-product-manager</artifactId>
-    <version>1.0-SNAPSHOT</version>
-    <dependencies>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-utilities-lib</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-nosqldb-core</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-vendor-software-product-core</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-heat-lib</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-tosca-lib</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.testng</groupId>
-            <artifactId>testng</artifactId>
-            <version>6.9.10</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <version>RELEASE</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.mockito</groupId>
-            <artifactId>mockito-all</artifactId>
-            <version>1.10.19</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-translator-core</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>com.fasterxml.jackson.dataformat</groupId>
-            <artifactId>jackson-dataformat-xml</artifactId>
-            <version>2.7.4</version>
-        </dependency>
-        <dependency>
-            <groupId>org.codehaus.woodstox</groupId>
-            <artifactId>woodstox-core-asl</artifactId>
-            <version>4.4.1</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-vendor-license-core</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-enrichment-core</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-validation-api</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-validation-impl</artifactId>
-            <version>1.0-SNAPSHOT</version>
-            <scope>runtime</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-enrichment-impl</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>commons-io</groupId>
-            <artifactId>commons-io</artifactId>
-            <version>${commons.io.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-model-impl</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-validation-manager</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-logging-core</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-logging-api</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-healing-core</artifactId>
-            <version>1.0-SNAPSHOT</version>
-            <scope>runtime</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-healing-impl</artifactId>
-            <version>1.0-SNAPSHOT</version>
-            <scope>runtime</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-healing-api</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-    </dependencies>
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-surefire-plugin</artifactId>
-                <version>2.19.1</version>
-                <configuration>
-                    <useSystemClassLoader>false</useSystemClassLoader>
-                    <redirectTestOutputToFile>true</redirectTestOutputToFile>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
-
-    <parent>
-        <groupId>org.openecomp.sdc</groupId>
-        <artifactId>backend</artifactId>
-        <version>1.0-SNAPSHOT</version>
-    </parent>
-
-
-</project>
\ No newline at end of file
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/ComputeErrorBuilder.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/ComputeErrorBuilder.java
new file mode 100644
index 0000000..1c728bd
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/ComputeErrorBuilder.java
@@ -0,0 +1,25 @@
+package org.openecomp.sdc.vendorsoftwareproduct.errors;
+
+import org.openecomp.sdc.common.errors.ErrorCategory;
+import org.openecomp.sdc.common.errors.ErrorCode;
+
+/**
+ * The Compute error builder.
+ */
+public class ComputeErrorBuilder {
+    private static final String COMPUTE_NAME_FORMAT_MSG = "Field does not conform to predefined criteria"
+            + ": name : must match %s";
+
+    /**
+     * Gets image name format error builder.
+     *
+     * @return the image name format error builder
+     */
+    public static ErrorCode getComputeNameFormatErrorBuilder(String pattern) {
+        ErrorCode.ErrorCodeBuilder builder = new ErrorCode.ErrorCodeBuilder();
+        builder.withId(VendorSoftwareProductErrorCodes.COMPUTE_NAME_FORMAT_NOT_ALLOWED);
+        builder.withCategory(ErrorCategory.APPLICATION);
+        builder.withMessage(String.format(COMPUTE_NAME_FORMAT_MSG, pattern));
+        return builder.build();
+    }
+}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/DeploymentFlavorErrorBuilder.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/DeploymentFlavorErrorBuilder.java
index 63d7165..97476a2 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/DeploymentFlavorErrorBuilder.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/DeploymentFlavorErrorBuilder.java
@@ -17,6 +17,8 @@
         "Invalid Request,Same Vfc cannot be associated more than once.";
     private static final String DUPLICATE_DEPLOYMENT_FLAVOR_MODEL_NOT_ALLOWED_MSG =
         "Invalid request, Deployment Flavor with model %s already exists for Vsp with Id %s.";
+    private static final String DEPLOYMENT_FLAVOUR_NAME_FORMAT_MSG = "Field does not conform to predefined criteria"
+            + ": name : must match %s";
     private static final String INVALID_COMPUTE_FLAVOR_ID_MSG =
         "Invalid request, Compute Flavor with Id %s does not exist for VFC with Id %s.";
     private static final String INVALID_COMPONENT_COMPUTE_ASSOCIATION_ERROR_MSG="VSP cannot be " +
@@ -92,4 +94,12 @@
         builder.withMessage(String.format(FEATUREGROUP_REQUIRED_IN_DEPLOYMENT_FLAVOR_MSG));
         return builder.build();
     }
+
+    public static ErrorCode getDeploymentFlavorNameFormatErrorBuilder(String pattern){
+        ErrorCode.ErrorCodeBuilder builder = new ErrorCode.ErrorCodeBuilder();
+        builder.withId(VendorSoftwareProductErrorCodes.DEPLOYMENT_FLAVOR_NAME_FORMAT_NOT_ALLOWED);
+        builder.withCategory(ErrorCategory.APPLICATION);
+        builder.withMessage(String.format(DEPLOYMENT_FLAVOUR_NAME_FORMAT_MSG, pattern));
+        return builder.build();
+    }
 }
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/ImageErrorBuilder.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/ImageErrorBuilder.java
index 95bff60..24883b5 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/ImageErrorBuilder.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/ImageErrorBuilder.java
@@ -1,13 +1,10 @@
 package org.openecomp.sdc.vendorsoftwareproduct.errors;
 
-import static org.openecomp.sdc.vendorsoftwareproduct.errors.VendorSoftwareProductErrorCodes.DUPLICATE_IMAGE_NAME_NOT_ALLOWED;
-
-import static org.openecomp.sdc.vendorsoftwareproduct.errors.VendorSoftwareProductErrorCodes.UPDATE_IMAGE_NOT_ALLOWED;
-import static org.openecomp.sdc.vendorsoftwareproduct.errors.VendorSoftwareProductErrorCodes.VFC_IMAGE_INVALID_FORMAT;
-
 import org.openecomp.sdc.common.errors.ErrorCategory;
 import org.openecomp.sdc.common.errors.ErrorCode;
 
+import static org.openecomp.sdc.vendorsoftwareproduct.errors.VendorSoftwareProductErrorCodes.*;
+
 /**
  * The Image error builder.
  */
@@ -15,7 +12,8 @@
 
   private static final String VFC_IMAGE_DUPLICATE_NAME_MSG = "Invalid request, Image with name %s"
       + " already exists for component with ID %s.";
-
+  private static final String VFC_IMAGE_NAME_FORMAT_MSG = "Field does not conform to predefined criteria"
+          + ": name : must match %s";
   private static final String IMAGE_INVALID_FORMAT_MSG = "The format value doesn't meet the "
       + "expected attribute value.";
 
@@ -28,11 +26,24 @@
    *
    * @return the duplicate image name error builder
    */
-  public static ErrorCode getDuplicateImageNameErrorBuilder(String imageName, String componenetId) {
+  public static ErrorCode getDuplicateImageNameErrorBuilder(String imageName, String componentId) {
     ErrorCode.ErrorCodeBuilder builder = new ErrorCode.ErrorCodeBuilder();
     builder.withId(DUPLICATE_IMAGE_NAME_NOT_ALLOWED);
     builder.withCategory(ErrorCategory.APPLICATION);
-    builder.withMessage(String.format(VFC_IMAGE_DUPLICATE_NAME_MSG, imageName, componenetId ));
+    builder.withMessage(String.format(VFC_IMAGE_DUPLICATE_NAME_MSG, imageName, componentId ));
+    return builder.build();
+  }
+
+  /**
+   * Gets image name format error builder.
+   *
+   * @return the image name format error builder
+   */
+  public static ErrorCode getImageNameFormatErrorBuilder(String pattern) {
+    ErrorCode.ErrorCodeBuilder builder = new ErrorCode.ErrorCodeBuilder();
+    builder.withId(IMAGE_NAME_FORMAT_NOT_ALLOWED);
+    builder.withCategory(ErrorCategory.APPLICATION);
+    builder.withMessage(String.format(VFC_IMAGE_NAME_FORMAT_MSG, pattern));
     return builder.build();
   }
 
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/NicErrorBuilder.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/NicErrorBuilder.java
new file mode 100644
index 0000000..fc8ecf2
--- /dev/null
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/NicErrorBuilder.java
@@ -0,0 +1,27 @@
+package org.openecomp.sdc.vendorsoftwareproduct.errors;
+
+import org.openecomp.sdc.common.errors.ErrorCategory;
+import org.openecomp.sdc.common.errors.ErrorCode;
+
+import static org.openecomp.sdc.vendorsoftwareproduct.errors.VendorSoftwareProductErrorCodes.NIC_NAME_FORMAT_NOT_ALLOWED;
+
+/**
+ * The NIC error builder.
+ */
+public class NicErrorBuilder {
+    private static final String NIC_NAME_FORMAT_MSG = "Field does not conform to predefined criteria"
+            + ": name : must match %s";
+
+    /**
+     * Gets image name format error builder.
+     *
+     * @return the image name format error builder
+     */
+    public static ErrorCode getNicNameFormatErrorBuilder(String imageName, String pattern) {
+        ErrorCode.ErrorCodeBuilder builder = new ErrorCode.ErrorCodeBuilder();
+        builder.withId(NIC_NAME_FORMAT_NOT_ALLOWED);
+        builder.withCategory(ErrorCategory.APPLICATION);
+        builder.withMessage(String.format(NIC_NAME_FORMAT_MSG, pattern));
+        return builder.build();
+    }
+}
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ComputeManagerImpl.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ComputeManagerImpl.java
index a2d1d70..cd102eb 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ComputeManagerImpl.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ComputeManagerImpl.java
@@ -12,15 +12,15 @@
 import org.openecomp.sdc.logging.types.LoggerErrorCode;
 import org.openecomp.sdc.logging.types.LoggerTragetServiceName;
 import org.openecomp.sdc.vendorsoftwareproduct.ComputeManager;
+import org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductConstants;
 import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDao;
 import org.openecomp.sdc.vendorsoftwareproduct.dao.ComputeDao;
 import org.openecomp.sdc.vendorsoftwareproduct.dao.DeploymentFlavorDao;
-import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductDao;
 import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDao;
-import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity;
 import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComputeEntity;
 import org.openecomp.sdc.vendorsoftwareproduct.dao.type.DeploymentFlavorEntity;
 import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails;
+import org.openecomp.sdc.vendorsoftwareproduct.errors.ComputeErrorBuilder;
 import org.openecomp.sdc.vendorsoftwareproduct.errors.DuplicateComputeInComponentErrorBuilder;
 import org.openecomp.sdc.vendorsoftwareproduct.errors.NotSupportedHeatOnboardMethodErrorBuilder;
 import org.openecomp.sdc.vendorsoftwareproduct.errors.VendorSoftwareProductErrorCodes;
@@ -34,14 +34,11 @@
 import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityValidationData;
 import org.openecomp.sdc.vendorsoftwareproduct.types.composition.ComputeData;
 import org.openecomp.sdc.vendorsoftwareproduct.types.composition.DeploymentFlavor;
-import org.openecomp.sdc.vendorsoftwareproduct.types.questionnaire.component.compute.Compute;
 import org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator.ComputeCompositionSchemaInput;
 import org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator.SchemaTemplateContext;
 import org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator.SchemaTemplateInput;
-import org.openecomp.sdc.vendorsoftwareproduct.utils.VendorSoftwareProductUtils;
 import org.openecomp.sdc.versioning.VersioningUtil;
 import org.openecomp.sdc.versioning.dao.types.Version;
-import org.openecomp.sdc.versioning.types.VersionableEntityAction;
 
 import java.util.ArrayList;
 import java.util.Collection;
@@ -92,9 +89,13 @@
           onboardingMethodUpdateErrorCode.message());
       throw new CoreException(onboardingMethodUpdateErrorCode);
     } else {
+
       //validateComponentId(compute.getVspId(),compute.getVersion(),compute.getComponentId());
-      validateCompute(compute);
-      createdCompute = createCompute(compute);
+        Collection<ComputeEntity> vfcComputeList = listCompute(compute.getVspId(),compute.getVersion
+                (),compute.getComponentId());
+
+        validateVfcCompute(compute, vfcComputeList, LoggerTragetServiceName.CREATE_COMPUTE);
+        createdCompute = createCompute(compute);
     }
 
     mdcDataDebugMessage
@@ -108,7 +109,7 @@
     return compositionEntityDataManager.createCompute(compute);
   }
 
-  private void validateCompute(ComputeEntity compute) {
+  /*private void validateCompute(ComputeEntity compute) {
     Collection<ComputeEntity> vfcComputeList = listCompute(compute.getVspId(),compute.getVersion
         (),compute.getComponentId());
 
@@ -123,7 +124,7 @@
       throw new CoreException(duplicateComputeInComponentErrorBuilder);
     }
 
-  }
+  }*/
 
   private void validateComputeUpdate(ComputeEntity compute) {
     Collection<ComputeEntity> vfcComputeList = listCompute(compute.getVspId(),compute.getVersion
@@ -347,7 +348,7 @@
     retrieved.setQuestionnaireData(null);
     vfcComputeList.remove(retrieved);
     if(vspInfoDao.isManual(compute.getVspId(), compute.getVersion()))
-      validateVfcCompute(compute, vfcComputeList);
+      validateVfcCompute(compute, vfcComputeList, LoggerTragetServiceName.UPDATE_COMPUTE);
 
     //Set format to default value in order to handle FTL validation when compute format is null
     /*if(compute.getComputeCompositionData().getFormat() == null)
@@ -384,22 +385,32 @@
     }
   }
 
-  private void validateVfcCompute(ComputeEntity compute, Collection<ComputeEntity> vfcComputeList) {
-    if (isComputeNameDuplicate(vfcComputeList,compute.getComputeCompositionData().getName(), compute.getId())) {
-      ErrorCode errorCode = DuplicateComputeInComponentErrorBuilder.getDuplicateComputeNameErrorBuilder(compute
+  private void validateVfcCompute(ComputeEntity compute, Collection<ComputeEntity> vfcComputeList, String event) {
+      if(!compute.getComputeCompositionData().getName().matches(VendorSoftwareProductConstants.NAME_PATTERN))
+      {
+          ErrorCode errorCode = ComputeErrorBuilder.getComputeNameFormatErrorBuilder(
+                  VendorSoftwareProductConstants.NAME_PATTERN);
+          MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
+                  event, ErrorLevel.ERROR.name(),
+                  errorCode.id(),errorCode.message());
+          throw new CoreException(errorCode);
+      }
+
+      if (isComputeNameDuplicate(vfcComputeList,compute.getComputeCompositionData().getName(), compute.getId())) {
+          ErrorCode errorCode = DuplicateComputeInComponentErrorBuilder.getDuplicateComputeNameErrorBuilder(compute
               .getComputeCompositionData().getName(), compute.getComponentId());
 
-      MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
-              LoggerTragetServiceName.CREATE_COMPONENT, ErrorLevel.ERROR.name(),
+          MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
+              event, ErrorLevel.ERROR.name(),
               errorCode.id(),errorCode.message());
 
-      throw new CoreException(errorCode);
-    }
+          throw new CoreException(errorCode);
+      }
   }
 
   private boolean isComputeNameDuplicate(Collection<ComputeEntity> computes, String name, String computeId) {
     for (ComputeEntity compute : computes) {
-      if (compute.getComputeCompositionData().getName().equals(name) && !compute.getId().equals(computeId)) {
+      if (compute.getComputeCompositionData().getName().equalsIgnoreCase(name) && !compute.getId().equals(computeId)) {
         return true;
       }
     }
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/DeploymentFlavorManagerImpl.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/DeploymentFlavorManagerImpl.java
index 7069d77..2e96445 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/DeploymentFlavorManagerImpl.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/DeploymentFlavorManagerImpl.java
@@ -10,6 +10,7 @@
 import org.openecomp.sdc.logging.types.LoggerErrorCode;
 import org.openecomp.sdc.logging.types.LoggerTragetServiceName;
 import org.openecomp.sdc.vendorsoftwareproduct.DeploymentFlavorManager;
+import org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductConstants;
 import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDao;
 import org.openecomp.sdc.vendorsoftwareproduct.dao.ComputeDao;
 import org.openecomp.sdc.vendorsoftwareproduct.dao.DeploymentFlavorDao;
@@ -23,17 +24,14 @@
 import org.openecomp.sdc.vendorsoftwareproduct.services.composition.CompositionEntityDataManager;
 import org.openecomp.sdc.vendorsoftwareproduct.services.schemagenerator.SchemaGenerator;
 import org.openecomp.sdc.vendorsoftwareproduct.types.CompositionEntityResponse;
-import org.openecomp.sdc.vendorsoftwareproduct.types.VersionedVendorSoftwareProductInfo;
 import org.openecomp.sdc.vendorsoftwareproduct.types.composition.ComponentComputeAssociation;
 import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityType;
 import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityValidationData;
 import org.openecomp.sdc.vendorsoftwareproduct.types.composition.DeploymentFlavor;
 import org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator.DeploymentFlavorCompositionSchemaInput;
 import org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator.SchemaTemplateContext;
-import org.openecomp.sdc.vendorsoftwareproduct.utils.VendorSoftwareProductUtils;
 import org.openecomp.sdc.versioning.VersioningUtil;
 import org.openecomp.sdc.versioning.dao.types.Version;
-import org.openecomp.sdc.versioning.types.VersionableEntityAction;
 
 import java.util.ArrayList;
 import java.util.Collection;
@@ -112,6 +110,18 @@
 
   private void validateDeploymentFlavor(DeploymentFlavorEntity deploymentFlavorEntity, String
       user, Version activeVersion) {
+
+    if(!deploymentFlavorEntity.getDeploymentFlavorCompositionData().getModel().matches(VendorSoftwareProductConstants.NAME_PATTERN))
+    {
+      ErrorCode errorCode = DeploymentFlavorErrorBuilder.getDeploymentFlavorNameFormatErrorBuilder(
+              VendorSoftwareProductConstants.NAME_PATTERN);
+
+      MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
+              LoggerTragetServiceName.UPDATE_NIC, ErrorLevel.ERROR.name(),
+              errorCode.id(),errorCode.message());
+
+      throw new CoreException(errorCode);
+    }
     //Validation for unique model.
     Collection<DeploymentFlavorEntity> listDeploymentFlavors =
         listDeploymentFlavors(deploymentFlavorEntity.getVspId(),
@@ -357,6 +367,17 @@
           updateDeploymentFlavorErrorBuilder.message());
       throw new CoreException(updateDeploymentFlavorErrorBuilder);
     }
+    else {
+        if(!deploymentFlavorEntity.getDeploymentFlavorCompositionData().getModel().matches(VendorSoftwareProductConstants.NAME_PATTERN))
+        {
+            ErrorCode errorCode = DeploymentFlavorErrorBuilder.getDeploymentFlavorNameFormatErrorBuilder(
+                    VendorSoftwareProductConstants.NAME_PATTERN);
+            MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
+                    LoggerTragetServiceName.UPDATE_DEPLOYMENT_FLAVOR, ErrorLevel.ERROR.name(),
+                    errorCode.id(),errorCode.message());
+            throw new CoreException(errorCode);
+        }
+    }
     //deploymentFlavorEntity.setVersion(activeVersion);
     DeploymentFlavorEntity retrieved =
         getDeploymentFlavor(deploymentFlavorEntity.getVspId(), deploymentFlavorEntity.getVersion(),
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ImageManagerImpl.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ImageManagerImpl.java
index e180138..6a8f9e0 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ImageManagerImpl.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ImageManagerImpl.java
@@ -12,9 +12,7 @@
 import org.openecomp.sdc.logging.types.LoggerErrorCode;
 import org.openecomp.sdc.logging.types.LoggerTragetServiceName;
 import org.openecomp.sdc.vendorsoftwareproduct.ImageManager;
-import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDao;
-import org.openecomp.sdc.vendorsoftwareproduct.dao.ComputeDao;
-import org.openecomp.sdc.vendorsoftwareproduct.dao.DeploymentFlavorDao;
+import org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductConstants;
 import org.openecomp.sdc.vendorsoftwareproduct.dao.ImageDao;
 import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDao;
 import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity;
@@ -34,10 +32,8 @@
 import org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator.ImageCompositionSchemaInput;
 import org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator.SchemaTemplateContext;
 import org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator.SchemaTemplateInput;
-import org.openecomp.sdc.vendorsoftwareproduct.utils.VendorSoftwareProductUtils;
 import org.openecomp.sdc.versioning.VersioningUtil;
 import org.openecomp.sdc.versioning.dao.types.Version;
-import org.openecomp.sdc.versioning.types.VersionableEntityAction;
 
 import java.util.Collection;
 
@@ -66,7 +62,8 @@
         VersionableEntityAction.Write, user).getActiveVersion();
 
     imageEntity.setVersion(activeVersion);*/
-    if (!vspInfoDao.isManual(imageEntity.getVspId(), imageEntity.getVersion())) {
+    boolean isManual = vspInfoDao.isManual(imageEntity.getVspId(), imageEntity.getVersion());
+    if (!isManual) {
 
       ErrorCode errorCode = NotSupportedHeatOnboardMethodErrorBuilder
           .getAddImageNotSupportedHeatOnboardMethodErrorBuilder();
@@ -80,7 +77,7 @@
 
     Collection<ImageEntity> vfcImageList = listImages(imageEntity.getVspId() ,
         imageEntity.getVersion(), imageEntity.getComponentId());
-    validateVfcImage(imageEntity, vfcImageList);
+    validateVfcImage(isManual, imageEntity, vfcImageList, LoggerTragetServiceName.CREATE_IMAGE);
     compositionEntityDataManager.createImage(imageEntity);
     return imageEntity;
   }
@@ -219,11 +216,11 @@
     /*Version activeVersion =
         getVersionInfo(image.getVspId(), VersionableEntityAction.Write, user).getActiveVersion();
     image.setVersion(activeVersion);*/
-
+    boolean isManual = vspInfoDao.isManual(image.getVspId(), image.getVersion());
     ImageEntity retrieved = getImageEntity(image.getVspId(), image.getVersion(), image.getComponentId(),
         image.getId());
 
-    if(!vspInfoDao.isManual(image.getVspId(), image.getVersion())) {
+    if(!isManual) {
       final Image imageCompositionData = image.getImageCompositionData();
       final String fileName = imageCompositionData.getFileName();
       //final String format = imageCompositionData.getFormat();
@@ -239,7 +236,7 @@
     //Set to null so that retrieved object is equal to one in list and gets removed.
     retrieved.setQuestionnaireData(null);
     vfcImageList.remove(retrieved);
-    validateVfcImage(image, vfcImageList);
+    validateVfcImage(isManual, image, vfcImageList, LoggerTragetServiceName.UPDATE_IMAGE);
 
     //Set format to default value in order to handle FTL validation when image format is null
     /*if(image.getImageCompositionData().getFormat() == null)
@@ -325,13 +322,25 @@
     return false;
   }
 
-  private void validateVfcImage(ImageEntity image, Collection<ImageEntity> vfcImageList) {
+  private void validateVfcImage(boolean isManual, ImageEntity image, Collection<ImageEntity> vfcImageList, String event) {
+    if(isManual && !image.getImageCompositionData().getFileName().matches(VendorSoftwareProductConstants.NAME_PATTERN))
+    {
+      ErrorCode errorCode = ImageErrorBuilder.getImageNameFormatErrorBuilder(
+              VendorSoftwareProductConstants.NAME_PATTERN);
+
+      MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
+              event, ErrorLevel.ERROR.name(),
+              errorCode.id(),errorCode.message());
+
+      throw new CoreException(errorCode);
+    }
+
     if (isImageNameDuplicate(vfcImageList,image.getImageCompositionData().getFileName())) {
       ErrorCode errorCode = ImageErrorBuilder.getDuplicateImageNameErrorBuilder(image
           .getImageCompositionData().getFileName(), image.getComponentId());
 
       MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
-          LoggerTragetServiceName.CREATE_COMPONENT, ErrorLevel.ERROR.name(),
+              event, ErrorLevel.ERROR.name(),
           errorCode.id(),errorCode.message());
 
       throw new CoreException(errorCode);
@@ -354,6 +363,4 @@
         .generate(SchemaTemplateContext.questionnaire, CompositionEntityType.image,
             schemaInput);
   }
-
-
 }
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ManualVspToscaManagerImpl.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ManualVspToscaManagerImpl.java
index ef33812..06e5452 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ManualVspToscaManagerImpl.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ManualVspToscaManagerImpl.java
@@ -2,7 +2,6 @@
 
 import org.apache.commons.collections4.MapUtils;
 import org.openecomp.sdc.datatypes.error.ErrorLevel;
-import org.openecomp.sdc.datatypes.error.ErrorLevel;
 import org.openecomp.sdc.generator.core.services.ManualVspToscaGenerationService;
 import org.openecomp.sdc.generator.datatypes.tosca.DeploymentFlavorModel;
 import org.openecomp.sdc.generator.datatypes.tosca.MultiFlavorVfcImage;
@@ -14,8 +13,8 @@
 import org.openecomp.sdc.logging.types.LoggerTragetServiceName;
 import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
 import org.openecomp.sdc.vendorsoftwareproduct.ManualVspToscaManager;
+import org.openecomp.sdc.vendorsoftwareproduct.services.ManualVspDataCollectionService;
 import org.openecomp.sdc.vendorsoftwareproduct.types.composition.Nic;
-import org.openecomp.sdc.vendorsoftwareproduct.utils.ManualVspDataCollectionService;
 import org.openecomp.sdc.versioning.dao.types.Version;
 
 import java.util.List;
@@ -25,12 +24,12 @@
 public class ManualVspToscaManagerImpl implements ManualVspToscaManager {
 
   private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage();
+  private ManualVspDataCollectionService
+      manualVspDataCollectionService = new ManualVspDataCollectionService();
 
   @Override
   public VspModelInfo gatherVspInformation(String vspId, Version version, String user) {
     mdcDataDebugMessage.debugEntryMessage(null, null);
-    ManualVspDataCollectionService
-        manualVspDataCollectionService = new ManualVspDataCollectionService();
     VspModelInfo vspModelInfo = new VspModelInfo();
     //Get Release Vendor Name
     Optional<String> releaseVendor;
@@ -40,7 +39,8 @@
       releaseVendor = Optional.empty();
       MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_API,
           LoggerTragetServiceName.COLLECT_MANUAL_VSP_TOSCA_DATA, ErrorLevel.INFO.name(),
-          LoggerErrorCode.DATA_ERROR.getErrorCode(), "Release Vendor not found");
+          LoggerErrorCode.DATA_ERROR.getErrorCode(), "Release Vendor not found : "
+              + ex.getMessage());
     }
     releaseVendor.ifPresent(vspModelInfo::setReleaseVendor);
 
@@ -51,7 +51,8 @@
     } catch (Exception ex) {
       MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_API,
           LoggerTragetServiceName.COLLECT_MANUAL_VSP_TOSCA_DATA, ErrorLevel.INFO.name(),
-          LoggerErrorCode.DATA_ERROR.getErrorCode(), "Unable to collect allowed flavors");
+          LoggerErrorCode.DATA_ERROR.getErrorCode(), "Unable to collect allowed flavors : "
+              + ex.getMessage());
       allowedFlavors = null;
     }
     if (MapUtils.isNotEmpty(allowedFlavors)) {
@@ -66,7 +67,8 @@
     } catch (Exception ex) {
       MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_API,
           LoggerTragetServiceName.COLLECT_MANUAL_VSP_TOSCA_DATA, ErrorLevel.INFO.name(),
-          LoggerErrorCode.DATA_ERROR.getErrorCode(), "Unable to collect vsp component images");
+          LoggerErrorCode.DATA_ERROR.getErrorCode(), "Unable to collect vsp component images : "
+              + ex.getMessage());
       vspComponentImages = null;
     }
     if (MapUtils.isNotEmpty(vspComponentImages)) {
@@ -80,7 +82,8 @@
     } catch (Exception ex) {
       MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_API,
           LoggerTragetServiceName.COLLECT_MANUAL_VSP_TOSCA_DATA, ErrorLevel.INFO.name(),
-          LoggerErrorCode.DATA_ERROR.getErrorCode(), "Unable to collect vsp components");
+          LoggerErrorCode.DATA_ERROR.getErrorCode(), "Unable to collect vsp components : "
+              + ex.getMessage());
       vspComponents = null;
     }
     if (MapUtils.isNotEmpty(vspComponents)) {
@@ -94,7 +97,8 @@
     } catch (Exception ex) {
       MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_API,
           LoggerTragetServiceName.COLLECT_MANUAL_VSP_TOSCA_DATA, ErrorLevel.INFO.name(),
-          LoggerErrorCode.DATA_ERROR.getErrorCode(), "Unable to collect vsp component nics");
+          LoggerErrorCode.DATA_ERROR.getErrorCode(), "Unable to collect vsp component nics : "
+              + ex.getMessage());
       vspComponentNics = null;
     }
     if (MapUtils.isNotEmpty(vspComponentNics)) {
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/NicManagerImpl.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/NicManagerImpl.java
index b196b3f..0304353 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/NicManagerImpl.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/NicManagerImpl.java
@@ -31,18 +31,13 @@
 import org.openecomp.sdc.logging.types.LoggerTragetServiceName;
 import org.openecomp.sdc.vendorsoftwareproduct.NetworkManager;
 import org.openecomp.sdc.vendorsoftwareproduct.NicManager;
+import org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductConstants;
 import org.openecomp.sdc.vendorsoftwareproduct.dao.NicDao;
 import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDao;
-import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity;
 import org.openecomp.sdc.vendorsoftwareproduct.dao.type.NetworkEntity;
 import org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity;
 import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails;
-import org.openecomp.sdc.vendorsoftwareproduct.errors.CompositionEditNotAllowedErrorBuilder;
-import org.openecomp.sdc.vendorsoftwareproduct.errors.DeleteNicErrorBuilder;
-import org.openecomp.sdc.vendorsoftwareproduct.errors.DuplicateNicInComponentErrorBuilder;
-import org.openecomp.sdc.vendorsoftwareproduct.errors.NicInternalNetworkErrorBuilder;
-import org.openecomp.sdc.vendorsoftwareproduct.errors.NicNetworkIdNotAllowedExternalNetworkErrorBuilder;
-import org.openecomp.sdc.vendorsoftwareproduct.errors.NotSupportedHeatOnboardMethodErrorBuilder;
+import org.openecomp.sdc.vendorsoftwareproduct.errors.*;
 import org.openecomp.sdc.vendorsoftwareproduct.services.composition.CompositionEntityDataManager;
 import org.openecomp.sdc.vendorsoftwareproduct.services.schemagenerator.SchemaGenerator;
 import org.openecomp.sdc.vendorsoftwareproduct.types.CompositionEntityResponse;
@@ -55,7 +50,6 @@
 import org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator.NicCompositionSchemaInput;
 import org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator.SchemaTemplateContext;
 import org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator.SchemaTemplateInput;
-import org.openecomp.sdc.vendorsoftwareproduct.utils.VendorSoftwareProductUtils;
 import org.openecomp.sdc.versioning.VersioningUtil;
 import org.openecomp.sdc.versioning.dao.types.Version;
 
@@ -145,6 +139,19 @@
     String networkId = nic.getNicCompositionData().getNetworkId();
     NetworkType networkType = nic.getNicCompositionData().getNetworkType();
     String networkDescription = nic.getNicCompositionData().getNetworkDescription();
+
+    if(!nic.getNicCompositionData().getName().matches(VendorSoftwareProductConstants.NAME_PATTERN))
+    {
+      ErrorCode errorCode = NicErrorBuilder.getNicNameFormatErrorBuilder(nic
+              .getNicCompositionData().getName(), VendorSoftwareProductConstants.NAME_PATTERN);
+
+      MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
+              LoggerTragetServiceName.CREATE_NIC, ErrorLevel.ERROR.name(),
+              errorCode.id(),errorCode.message());
+
+      throw new CoreException(errorCode);
+    }
+
     listNics.forEach(nicEntity -> {
       Nic nicdata = nicEntity.getNicCompositionData();
       if (nic.getNicCompositionData().getName().equalsIgnoreCase(nicdata.getName())) {
@@ -265,6 +272,18 @@
     schemaInput.setManual(vspInfoDao.isManual(nic.getVspId(), nic.getVersion()));
     schemaInput.setNic(retrieved.getNicCompositionData());
 
+    if(schemaInput.isManual() && !nic.getNicCompositionData().getName().matches(VendorSoftwareProductConstants.NAME_PATTERN))
+    {
+      ErrorCode errorCode = NicErrorBuilder.getNicNameFormatErrorBuilder(nic
+              .getNicCompositionData().getName(), VendorSoftwareProductConstants.NAME_PATTERN);
+
+      MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
+              LoggerTragetServiceName.UPDATE_NIC, ErrorLevel.ERROR.name(),
+              errorCode.id(),errorCode.message());
+
+      throw new CoreException(errorCode);
+    }
+
     CompositionEntityValidationData validationData = compositionEntityDataManager
         .validateEntity(nic, SchemaTemplateContext.composition, schemaInput);
     if (CollectionUtils.isEmpty(validationData.getErrors())) {
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/OrchestrationTemplateCandidateManagerImpl.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/OrchestrationTemplateCandidateManagerImpl.java
index 959cf15..07e8480 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/OrchestrationTemplateCandidateManagerImpl.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/OrchestrationTemplateCandidateManagerImpl.java
@@ -29,6 +29,7 @@
 import org.openecomp.core.utilities.file.FileContentHandler;
 import org.openecomp.core.utilities.file.FileUtils;
 import org.openecomp.core.utilities.json.JsonUtil;
+import org.openecomp.core.validation.util.MessageContainerUtil;
 import org.openecomp.sdc.activityLog.ActivityLogManager;
 import org.openecomp.sdc.activitylog.dao.type.ActivityLogEntity;
 import org.openecomp.sdc.common.errors.CoreException;
@@ -47,6 +48,7 @@
 import org.openecomp.sdc.logging.api.LoggerFactory;
 import org.openecomp.sdc.logging.api.annotations.Metrics;
 import org.openecomp.sdc.logging.context.impl.MdcDataDebugMessage;
+import org.openecomp.sdc.logging.messages.AuditMessages;
 import org.openecomp.sdc.logging.types.LoggerServiceName;
 import org.openecomp.sdc.logging.types.LoggerTragetServiceName;
 import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
@@ -90,6 +92,7 @@
 import java.util.Map;
 import java.util.Optional;
 
+import static org.openecomp.sdc.logging.messages.AuditMessages.HEAT_VALIDATION_ERROR;
 import static org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductConstants.GENERAL_COMPONENT_ID;
 import static org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductConstants.UniqueValues.PROCESS_NAME;
 
@@ -225,6 +228,7 @@
       throw new CoreException(new OrchestrationTemplateNotFoundErrorBuilder(vspId).build());
     }
 
+    logger.audit(AuditMessages.AUDIT_MSG + AuditMessages.HEAT_VALIDATION_STARTED + vspId);
     OrchestrationTemplateActionResponse response = new OrchestrationTemplateActionResponse();
     UploadFileResponse uploadFileResponse = new UploadFileResponse();
     OrchestrationTemplateCandidateData candidateDataEntity = candidate.get();
@@ -233,6 +237,8 @@
     if (!fileContent.isPresent()) {
       response.addStructureErrors(uploadFileResponse.getErrors());
       mdcDataDebugMessage.debugExitMessage("VSP id", vspId);
+      response.getErrors().values().forEach(errorList -> printAuditForErrors(errorList,vspId,
+          HEAT_VALIDATION_ERROR));
       return response;
     }
 
@@ -246,6 +252,8 @@
           Messages.FOUND_UNASSIGNED_FILES.getErrorMessage(), ErrorLevel.ERROR);
 
       mdcDataDebugMessage.debugExitMessage("VSP id", vspId);
+      response.getErrors().values().forEach(errorList -> printAuditForErrors(errorList,vspId,
+          HEAT_VALIDATION_ERROR));
       return response;
     }
 
@@ -258,6 +266,8 @@
     Optional<ByteArrayInputStream> zipByteArrayInputStream = candidateService
         .fetchZipFileByteArrayInputStream(vspId, candidateDataEntity, manifest, uploadErrors);
     if (!zipByteArrayInputStream.isPresent()) {
+      response.getErrors().values().forEach(errorList -> printAuditForErrors(errorList,vspId,
+          HEAT_VALIDATION_ERROR));
       return response;
     }
 
@@ -275,8 +285,18 @@
     deleteUploadDataAndContent(vspId, version);
     saveHotData(vspId, version, zipByteArrayInputStream.get(), fileContentMap, tree);
 
+    response.getErrors().values().forEach(errorList -> printAuditForErrors(errorList,vspId,
+        HEAT_VALIDATION_ERROR));
+    if ( MapUtils.isEmpty(MessageContainerUtil.getMessageByLevel(ErrorLevel.ERROR, response.getErrors
+        ()))) {
+      logger.audit(AuditMessages.AUDIT_MSG + AuditMessages.HEAT_VALIDATION_COMPLETED + vspId);
+    }
+
+    logger.audit(AuditMessages.AUDIT_MSG + AuditMessages.HEAT_TRANSLATION_STARTED + vspId);
+
     TranslatorOutput translatorOutput =
         HeatToToscaUtil.loadAndTranslateTemplateData(fileContentMap);
+
     ToscaServiceModel toscaServiceModel = translatorOutput.getToscaServiceModel();
     if (toscaServiceModel != null) {
       serviceModelDao.storeServiceModel(vspId, version, toscaServiceModel);
@@ -287,7 +307,10 @@
               .getNonUnifiedToscaServiceModel()));
       retainComponentQuestionnaireData(vspId, version, componentsQuestionnaire,
           componentNicsQuestionnaire, componentMibList, processes, processArtifact);
+
+      logger.audit(AuditMessages.AUDIT_MSG + AuditMessages.HEAT_TRANSLATION_COMPLETED + vspId);
     }
+
     uploadFileResponse.addStructureErrors(uploadErrors);
 
     ActivityLogEntity activityLogEntity =
@@ -299,7 +322,6 @@
     return response;
   }
 
-
   @Override
   public Optional<FilesDataStructure> getFilesDataStructure(
       String vspId, Version version, String user) {
@@ -462,7 +484,7 @@
           componentArtifactDao.listArtifacts(new
               ComponentMonitoringUploadEntity(vspId, activeVersion, componentEntity.getId(),
               null));
-      if(CollectionUtils.isNotEmpty(componentMib)){
+      if (CollectionUtils.isNotEmpty(componentMib)) {
         componentMibList.put(componentName,componentMib);
       }
 
@@ -614,4 +636,14 @@
     return vspDetails;
   }
 
-}
+  private void printAuditForErrors(List<ErrorMessage> errorList, String vspId, String auditType) {
+
+    errorList.forEach(errorMessage -> {
+      if (errorMessage.getLevel().equals(ErrorLevel.ERROR)) {
+        logger.audit(AuditMessages.AUDIT_MSG + String.format(auditType, errorMessage.getMessage(),
+            vspId));
+      }
+    });
+  }
+
+ }
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/VendorSoftwareProductManagerImpl.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/VendorSoftwareProductManagerImpl.java
index 0b48c33..8924637 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/VendorSoftwareProductManagerImpl.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/impl/VendorSoftwareProductManagerImpl.java
@@ -48,6 +48,7 @@
 import org.openecomp.sdc.logging.api.LoggerFactory;
 import org.openecomp.sdc.logging.context.impl.MdcDataDebugMessage;
 import org.openecomp.sdc.logging.context.impl.MdcDataErrorMessage;
+import org.openecomp.sdc.logging.messages.AuditMessages;
 import org.openecomp.sdc.logging.types.LoggerConstants;
 import org.openecomp.sdc.logging.types.LoggerErrorCode;
 import org.openecomp.sdc.logging.types.LoggerServiceName;
@@ -594,6 +595,14 @@
     enrichmentManager.setModel(serviceModel);
     Map<String, List<ErrorMessage>> enrichErrors = enrichmentManager.enrich();
 
+    if (MapUtils.isEmpty(MessageContainerUtil.getMessageByLevel(ErrorLevel.ERROR, enrichErrors))) {
+      logger.audit(AuditMessages.AUDIT_MSG + AuditMessages.ENRICHMENT_COMPLETED
+          + vendorSoftwareProductId);
+    } else {
+      enrichErrors.values().forEach(errorList ->
+          auditIfContainsErrors(errorList,vendorSoftwareProductId,AuditMessages.ENRICHMENT_ERROR));
+    }
+
     enrichedServiceModelDao
         .storeServiceModel(vendorSoftwareProductId, version, enrichmentManager.getModel());
 
@@ -993,6 +1002,8 @@
 
     packageInfoDao.create(packageInfo);
 
+    logger.audit(AuditMessages.AUDIT_MSG + AuditMessages.CREATE_PACKAGE + vspId);
+
     mdcDataDebugMessage.debugExitMessage("VSP id", vspId);
     return packageInfo;
   }
@@ -1178,4 +1189,14 @@
                                                    String user) {
     return vendorSoftwareProductDao.listComputesByVsp(vspId, version);
   }
+
+  private void auditIfContainsErrors(List<ErrorMessage> errorList, String vspId,String auditType) {
+
+    errorList.forEach(errorMessage -> {
+      if (errorMessage.getLevel().equals(ErrorLevel.ERROR)) {
+        logger.audit(AuditMessages.AUDIT_MSG + String.format(auditType, errorMessage.getMessage(),
+            vspId));
+      }
+    });
+  }
 }
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ComputeManagerImplTest.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ComputeManagerImplTest.java
index c8f473c..103762c 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ComputeManagerImplTest.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ComputeManagerImplTest.java
@@ -140,11 +140,12 @@
     }
 
     @Test
-    public void testCreateManualImageWithDuplicateName() {
+    public void testCreateManualComputeWithDuplicateName() {
         ComputeEntity expected = createCompute(VSP_ID, VERSION, COMPONENT_ID, COMPUTE1_ID);
         doReturn(true).when(vspInfoDao).isManual(anyObject(), anyObject());
 
         ComputeEntity expectedDiffName = createCompute(VSP_ID, VERSION, COMPONENT_ID, COMPUTE1_ID);
+        expectedDiffName.setId(COMPUTE1_ID + "Name");
         ComputeData computeData = expectedDiffName.getComputeCompositionData();
         computeData.setName(COMPUTE1_ID + "Name");
         expectedDiffName.setComputeCompositionData(computeData);
@@ -162,6 +163,28 @@
         }
     }
 
+    @Test
+    public void testCreateManualComputeWithIncorrectNameFormat() {
+        ComputeEntity expected = createCompute(VSP_ID, VERSION, COMPONENT_ID, COMPUTE1_ID);
+        doReturn(true).when(vspInfoDao).isManual(anyObject(), anyObject());
+
+        ComputeEntity expectedDiffName = createCompute(VSP_ID, VERSION, COMPONENT_ID, COMPUTE1_ID);
+        ComputeData computeData = expectedDiffName.getComputeCompositionData();
+        computeData.setName(COMPUTE1_ID + "Name/*");
+        expectedDiffName.setComputeCompositionData(computeData);
+        List<ComputeEntity> vfcImageList = new ArrayList<ComputeEntity>();
+        vfcImageList.add(expectedDiffName);
+        doReturn(vfcImageList).when(computeDao).list(anyObject());
+
+        try {
+            computeManager.createCompute(expectedDiffName, USER);
+            Assert.fail();
+        }
+        catch (CoreException ex) {
+            Assert.assertEquals(VendorSoftwareProductErrorCodes.COMPUTE_NAME_FORMAT_NOT_ALLOWED,
+                    ex.code().id());
+        }
+    }
 
     @Test
     public void testUpdateNonExistingComputeId_negative() {
@@ -192,6 +215,33 @@
     }
 
     @Test
+    public void testUpdateComputeWithIncorrectNameFormat() {
+        doReturn(createCompute(VSP_ID, VERSION, COMPONENT_ID, COMPUTE1_ID))
+                .when(computeDao).get(anyObject());
+
+        doReturn(new CompositionEntityValidationData(CompositionEntityType.compute, COMPUTE1_ID))
+                .when(compositionEntityDataManagerMock)
+                .validateEntity(anyObject(), anyObject(), anyObject());
+
+        doReturn(true).when(vspInfoDao).isManual(anyObject(), anyObject());
+
+        ComputeEntity computeEntity = new ComputeEntity(VSP_ID, VERSION, COMPONENT_ID, COMPUTE1_ID);
+        ComputeData computeData = new ComputeData();
+        computeData.setName(COMPUTE1_ID + "name/*");
+        computeData.setDescription(COMPUTE1_ID + "desc updated");
+        computeEntity.setComputeCompositionData(computeData);
+
+        try {
+            computeManager.updateCompute(computeEntity, USER);
+            Assert.fail();
+        }
+        catch (CoreException ex) {
+            Assert.assertEquals(VendorSoftwareProductErrorCodes.COMPUTE_NAME_FORMAT_NOT_ALLOWED,
+                    ex.code().id());
+        }
+    }
+
+    @Test
     public void testIllegalComputeUpdate() {
         doReturn(createCompute(VSP_ID, VERSION, COMPONENT_ID, COMPUTE1_ID))
                 .when(computeDao).get(anyObject());
@@ -207,7 +257,7 @@
 
         ComputeEntity computeEntity = new ComputeEntity(VSP_ID, VERSION, COMPONENT_ID, COMPUTE1_ID);
         ComputeData computeData = new ComputeData();
-        computeData.setName(COMPUTE1_ID + " name updated");
+        computeData.setName(COMPUTE1_ID + "_name_updated");
         computeData.setDescription(COMPUTE1_ID + " desc updated");
         computeEntity.setComputeCompositionData(computeData);
 
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/DeplomentFlavorManagerImplTest.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/DeplomentFlavorManagerImplTest.java
index e082b25..598b97b 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/DeplomentFlavorManagerImplTest.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/DeplomentFlavorManagerImplTest.java
@@ -22,8 +22,6 @@
 import org.openecomp.sdc.vendorsoftwareproduct.errors.VendorSoftwareProductErrorCodes;
 import org.openecomp.sdc.vendorsoftwareproduct.services.composition.CompositionEntityDataManager;
 import org.openecomp.sdc.vendorsoftwareproduct.types.CompositionEntityResponse;
-import org.openecomp.sdc.vendorsoftwareproduct.types.QuestionnaireResponse;
-import org.openecomp.sdc.vendorsoftwareproduct.types.composition.Component;
 import org.openecomp.sdc.vendorsoftwareproduct.types.composition.ComponentComputeAssociation;
 import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityType;
 import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityValidationData;
@@ -99,7 +97,7 @@
 
     DeploymentFlavorEntity expectedDiffName = createDeploymentFlavor(VSP_ID, VERSION, DF1_ID);
     DeploymentFlavor deploymentFlavor = expectedDiffName.getDeploymentFlavorCompositionData();
-    deploymentFlavor.setModel(DF1_ID + " Name");
+    deploymentFlavor.setModel(DF1_ID + "Name");
     expectedDiffName.setDeploymentFlavorCompositionData(deploymentFlavor);
     List<DeploymentFlavorEntity> list = new ArrayList<DeploymentFlavorEntity>();
     list.add(expectedDiffName);
@@ -116,6 +114,28 @@
   }
 
   @Test
+  public void testCreateManualDepFlavorWithIncorrectNameFormat() {
+    DeploymentFlavorEntity expected = createDeploymentFlavor(VSP_ID, VERSION, DF1_ID);
+    doReturn(true).when(vspInfoDao).isManual(anyObject(), anyObject());
+
+    DeploymentFlavorEntity expectedDiffName = createDeploymentFlavor(VSP_ID, VERSION, DF1_ID);
+    DeploymentFlavor deploymentFlavor = expectedDiffName.getDeploymentFlavorCompositionData();
+    deploymentFlavor.setModel(DF1_ID + "Name/*");
+    expectedDiffName.setDeploymentFlavorCompositionData(deploymentFlavor);
+    List<DeploymentFlavorEntity> list = new ArrayList<DeploymentFlavorEntity>();
+    list.add(expectedDiffName);
+    doReturn(list).when(deploymentFlavorDaoMock).list(anyObject());
+
+    try {
+      deploymentFlavorManager.createDeploymentFlavor(expectedDiffName, USER);
+      Assert.fail();
+    }
+    catch (CoreException ex) {
+      Assert.assertEquals(VendorSoftwareProductErrorCodes.DEPLOYMENT_FLAVOR_NAME_FORMAT_NOT_ALLOWED,
+              ex.code().id());
+    }
+  }
+  @Test
   public void testCreateManualDepFlavorWithFGNotInVSP() {
     DeploymentFlavorEntity expected = createDeploymentFlavor(VSP_ID, VERSION, DF1_ID);
     final DeploymentFlavor deploymentFlavor =
@@ -253,7 +273,7 @@
     Assert.assertEquals(deploymentFlavorEntities.size(), 2);
     for (DeploymentFlavorEntity deploymentFlavorEntity : deploymentFlavorEntities) {
       Assert.assertEquals(deploymentFlavorEntity.getDeploymentFlavorCompositionData().getModel()
-          , DF1_ID.equals(deploymentFlavorEntity.getId()) ? DF1_ID+" name" : DF2_ID+" name" );
+          , DF1_ID.equals(deploymentFlavorEntity.getId()) ? DF1_ID+"name" : DF2_ID+"name" );
     }
   }
 
@@ -286,7 +306,7 @@
 
     DeploymentFlavorEntity deploymentFlavorEntity = new DeploymentFlavorEntity(VSP_ID, VERSION, DF1_ID);
     DeploymentFlavor deploymentFlavor = new DeploymentFlavor();
-    deploymentFlavor.setModel(DF1_ID + " name");
+    deploymentFlavor.setModel(DF1_ID + "_name");
     deploymentFlavor.setDescription(DF1_ID + " desc updated");
     deploymentFlavorEntity.setDeploymentFlavorCompositionData(deploymentFlavor);
 
@@ -296,6 +316,36 @@
     verify(deploymentFlavorDaoMock).update(deploymentFlavorEntity);
   }
 
+    @Test
+    public void testManualUpdateDepFlavorIncorrectNameFormat() {
+        doReturn(true).when(vspInfoDao).isManual(anyObject(), anyObject());
+
+        doReturn(createDeploymentFlavor(VSP_ID, VERSION, DF1_ID))
+                .when(deploymentFlavorDaoMock).get(anyObject());
+
+        doReturn(new CompositionEntityValidationData(CompositionEntityType.image, DF1_ID))
+                .when(compositionEntityDataManagerMock)
+                .validateEntity(anyObject(), anyObject(), anyObject());
+
+        VspDetails vspDetails = new VspDetails(VSP_ID, VERSION);
+        doReturn(vspDetails).when(vspInfoDao).get(anyObject());
+
+        DeploymentFlavorEntity deploymentFlavorEntity = new DeploymentFlavorEntity(VSP_ID, VERSION, DF1_ID);
+        DeploymentFlavor deploymentFlavor = new DeploymentFlavor();
+        deploymentFlavor.setModel(DF1_ID + "_name/*");
+        deploymentFlavor.setDescription(DF1_ID + " desc updated");
+        deploymentFlavorEntity.setDeploymentFlavorCompositionData(deploymentFlavor);
+
+        try {
+            deploymentFlavorManager.updateDeploymentFlavor(deploymentFlavorEntity, USER);
+            Assert.fail();
+        }
+        catch (CoreException ex) {
+            Assert.assertEquals(VendorSoftwareProductErrorCodes.DEPLOYMENT_FLAVOR_NAME_FORMAT_NOT_ALLOWED,
+                    ex.code().id());
+        }
+    }
+
   @Test
   public void testGetNonExistingDepFlavorId_negative() {
     testGet_negative(VSP_ID, VERSION, "non existing image id", USER,
@@ -378,7 +428,7 @@
 
     DeploymentFlavorEntity deploymentFlavorEntity = new DeploymentFlavorEntity(vspId, version, deploymentFlavorId);
     DeploymentFlavor deploymentFlavor = new DeploymentFlavor();
-    deploymentFlavor.setModel(deploymentFlavorId + " name");
+    deploymentFlavor.setModel(deploymentFlavorId + "name");
     deploymentFlavor.setDescription(deploymentFlavorId + " desc");
 
     deploymentFlavorEntity.setDeploymentFlavorCompositionData(deploymentFlavor);
@@ -388,8 +438,12 @@
   private void testUpdate_negative(String vspId, Version version, String
       deploymentFlavorId, String user, String expectedErrorCode) {
     try {
+      DeploymentFlavorEntity deploymentFlavorEntity = new DeploymentFlavorEntity(vspId, version, deploymentFlavorId);
+      DeploymentFlavor deploymentFlavor = new DeploymentFlavor();
+      deploymentFlavor.setModel("Name");
+      deploymentFlavorEntity.setDeploymentFlavorCompositionData(deploymentFlavor);
       deploymentFlavorManager
-          .updateDeploymentFlavor(new DeploymentFlavorEntity(vspId, version, deploymentFlavorId), user);
+          .updateDeploymentFlavor(deploymentFlavorEntity, user);
       Assert.fail();
     } catch (CoreException exception) {
       Assert.assertEquals(exception.code().id(), expectedErrorCode);
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ImageManagerImplTest.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ImageManagerImplTest.java
index ec676e5..c29cb42 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ImageManagerImplTest.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ImageManagerImplTest.java
@@ -84,7 +84,7 @@
     Assert.assertEquals(images.size(), 2);
     for (ImageEntity image : images) {
       Assert.assertEquals(image.getImageCompositionData().getFileName(),
-          IMAGE1_ID.equals(image.getId()) ? IMAGE1_ID+" name" : IMAGE2_ID+" name" );
+          IMAGE1_ID.equals(image.getId()) ? IMAGE1_ID+"_name" : IMAGE2_ID+"_name" );
     }
   }
 
@@ -105,13 +105,35 @@
   }
 
   @Test
+  public void testCreateManualImageWithIncorrectNameFormat() {
+    ImageEntity expected = createImage(VSP_ID, VERSION, COMPONENT_ID, IMAGE1_ID);
+    doReturn(true).when(vspInfoDao).isManual(anyObject(), anyObject());
+
+    ImageEntity expectedDiffName = createImage(VSP_ID, VERSION, COMPONENT_ID, IMAGE1_ID);
+    Image image = expectedDiffName.getImageCompositionData();
+    image.setFileName(IMAGE1_ID + " Name*/");
+    expectedDiffName.setImageCompositionData(image);
+    List<ImageEntity> vfcImageList = new ArrayList<ImageEntity>();
+    vfcImageList.add(expectedDiffName);
+    doReturn(vfcImageList).when(imageDao).list(anyObject());
+    try {
+      imageManager.createImage(expectedDiffName, USER);
+      Assert.fail();
+    }
+    catch (CoreException ex) {
+      Assert.assertEquals(VendorSoftwareProductErrorCodes.IMAGE_NAME_FORMAT_NOT_ALLOWED,
+              ex.code().id());
+    }
+  }
+
+  @Test
   public void testCreateManualImageWithDuplicateName() {
     ImageEntity expected = createImage(VSP_ID, VERSION, COMPONENT_ID, IMAGE1_ID);
     doReturn(true).when(vspInfoDao).isManual(anyObject(), anyObject());
 
     ImageEntity expectedDiffName = createImage(VSP_ID, VERSION, COMPONENT_ID, IMAGE1_ID);
     Image image = expectedDiffName.getImageCompositionData();
-    image.setFileName(IMAGE1_ID + " Name");
+    image.setFileName(IMAGE1_ID + "_Name");
     expectedDiffName.setImageCompositionData(image);
     List<ImageEntity> vfcImageList = new ArrayList<ImageEntity>();
     vfcImageList.add(expectedDiffName);
@@ -143,7 +165,7 @@
 
     ImageEntity imageEntity = new ImageEntity(VSP_ID, VERSION, COMPONENT_ID, IMAGE1_ID);
     Image imageData = new Image();
-    imageData.setFileName(IMAGE1_ID + " name");
+    imageData.setFileName(IMAGE1_ID + "_name");
     imageData.setDescription(IMAGE1_ID + " desc updated");
     imageEntity.setImageCompositionData(imageData);
 
@@ -154,6 +176,33 @@
   }
 
   @Test
+  public void testUpdateImageWithIncorrectNameFormat() {
+    doReturn(createImage(VSP_ID, VERSION, COMPONENT_ID, IMAGE1_ID))
+            .when(imageDao).get(anyObject());
+
+    doReturn(new CompositionEntityValidationData(CompositionEntityType.image, IMAGE1_ID))
+            .when(compositionEntityDataManagerMock)
+            .validateEntity(anyObject(), anyObject(), anyObject());
+
+    doReturn(true).when(vspInfoDao).isManual(anyObject(), anyObject());
+
+    ImageEntity imageEntity = new ImageEntity(VSP_ID, VERSION, COMPONENT_ID, IMAGE1_ID);
+    Image imageData = new Image();
+    imageData.setFileName(IMAGE1_ID + "name/*");
+    imageData.setDescription(IMAGE1_ID + " desc updated");
+    imageEntity.setImageCompositionData(imageData);
+
+    try {
+      imageManager.updateImage(imageEntity, USER);
+      Assert.fail();
+    }
+    catch (CoreException ex) {
+      Assert.assertEquals(VendorSoftwareProductErrorCodes.IMAGE_NAME_FORMAT_NOT_ALLOWED,
+              ex.code().id());
+    }
+  }
+
+  @Test
   public void testIllegalImageUpdate() {
     doReturn(createImage(VSP_ID, VERSION, COMPONENT_ID, IMAGE1_ID))
         .when(imageDao).get(anyObject());
@@ -169,7 +218,7 @@
 
     ImageEntity imageEntity = new ImageEntity(VSP_ID, VERSION, COMPONENT_ID, IMAGE1_ID);
     Image imageData = new Image();
-    imageData.setFileName(IMAGE1_ID + " name updated");
+    imageData.setFileName(IMAGE1_ID + "_name_updated");
     imageData.setDescription(IMAGE1_ID + " desc updated");
     imageEntity.setImageCompositionData(imageData);
 
@@ -345,7 +394,7 @@
   static ImageEntity createImage(String vspId, Version version, String compId, String imageId) {
     ImageEntity imageEntity = new ImageEntity(vspId, version, compId, imageId);
     Image imageData = new Image();
-    imageData.setFileName(imageId + " name");
+    imageData.setFileName(imageId + "_name");
     imageData.setDescription(imageId + " desc");
     imageEntity.setImageCompositionData(imageData);
     return imageEntity;
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ManualVspToscaManagerImplTest.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ManualVspToscaManagerImplTest.java
index 4bbbec1..8ea853c 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ManualVspToscaManagerImplTest.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/ManualVspToscaManagerImplTest.java
@@ -1,6 +1,9 @@
 package org.openecomp.sdc.vendorsoftwareproduct.impl;
 
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.doThrow;
 import static org.openecomp.sdc.generator.util.GeneratorConstants.ALLOWED_FLAVORS_PROPERTY;
+import static org.openecomp.sdc.generator.util.GeneratorConstants.IMAGES_PROPERTY;
 import static org.openecomp.sdc.generator.util.GeneratorConstants.PORT_NODE_TEMPLATE_ID_SUFFIX;
 import static org.openecomp.sdc.tosca.services.ToscaConstants.BINDING_REQUIREMENT_ID;
 import static org.openecomp.sdc.tosca.services.ToscaConstants.COUNT_PROPERTY_NAME;
@@ -10,6 +13,10 @@
 
 import org.junit.Assert;
 import org.junit.Test;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.mockito.Spy;
 import org.openecomp.sdc.generator.core.utils.GeneratorUtils;
 import org.openecomp.sdc.generator.datatypes.tosca.ComputeFlavor;
 import org.openecomp.sdc.generator.datatypes.tosca.DeploymentFlavorModel;
@@ -36,43 +43,112 @@
 import org.openecomp.sdc.tosca.services.impl.ToscaAnalyzerServiceImpl;
 import org.openecomp.sdc.vendorsoftwareproduct.ManualVspToscaManager;
 import org.openecomp.sdc.vendorsoftwareproduct.types.composition.Nic;
+import org.openecomp.sdc.vendorsoftwareproduct.services.ManualVspDataCollectionService;
+import org.openecomp.sdc.versioning.dao.types.Version;
 
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 
 public class ManualVspToscaManagerImplTest {
 
+  private static final String USER = "manualVspToscaTestUser";
+  private static final String INVALID_VSP_ID = "Invalid_Vsp_Id";
+  private static final String VSP_ID = "Vsp_Id_1";
+  private static final String VSP_VERSION = "1.0";
+
+  private static final String RELEASE_VENDOR = "Vendor-1";
   private static final String COMPONENT_ID = "Component_id";
   private static final String COMPONENT_NAME = "Component_name";
   private static final String SP_PART_NUMBER_1 = "Part_number_123";
   private static final String FEATURE_GROUP_ID_1 = "Feature_Group_id_1";
   private static final String MANUFACTURER_REF_1 = "Manufacturer_Ref_1";
-  private static final String VENDOR_MODEL_1 = "VLM_1";
+  private static final String VENDOR_MODEL_1 = "Deployment_Flavor_Model_1";
   private static final int NUM_CPUS_1 = 1;
-  private static final String DISK_SIZE_1 = "2GB";
-  private static final String MEM_SIZE_1 = "8GB";
+  private static final String DISK_SIZE_1 = "2 GB";
+  private static final String MEM_SIZE_1 = "8 GB";
 
   private static final String SP_PART_NUMBER_2 = "Part_number_345";
   private static final String FEATURE_GROUP_ID_2 = "Feature_Group_id_2";
   private static final String MANUFACTURER_REF_2 = "Manufacturer_Ref_2";
-  private static final String VENDOR_MODEL_2 = "VLM_2";
+  private static final String VENDOR_MODEL_2 = "Deployment_Flavor_Model_2";
   private static final int NUM_CPUS_2 = 4;
-  private static final String DISK_SIZE_2 = "3GB";
-  private static final String MEM_SIZE_2 = "2GB";
+  private static final String DISK_SIZE_2 = "3 GB";
+  private static final String MEM_SIZE_2 = "2 GB";
 
   private static final String IMAGE_VERSION_1 = "3.16.1";
   private static final String IMAGE_HASH_1 = "65edfgye3256hjutve";
   private static final String IMAGE_FILE_NAME_1 = "image-file-name1";
-  private static final String IMAGE_FILE_FORMAT_1 = "qcow2";
   private static final String IMAGE_VERSION_2 = "3.1.9";
   private static final String IMAGE_HASH_2 = "84rtedfe3256hjutaw";
   private static final String IMAGE_FILE_NAME_2 = "image-file-name1";
-  private static final String IMAGE_FILE_FORMAT_2 = "iso";
 
   private ManualVspToscaManager manualVspToscaManager = new ManualVspToscaManagerImpl();
 
+  @Spy
+  @InjectMocks
+  private ManualVspToscaManagerImpl manualVspToscaManagerMock;
+
+  @Mock
+  private ManualVspDataCollectionService manualVspDataCollectionServiceMock;
+
+  @Test
+  public void testGatherVspInformationInvalidVsp() {
+    MockitoAnnotations.initMocks(this);
+    VspModelInfo expectedVspData = new VspModelInfo();
+    doThrow(new RuntimeException())
+        .when(manualVspDataCollectionServiceMock)
+        .getReleaseVendor(INVALID_VSP_ID, Version.valueOf(VSP_VERSION), USER);
+    doThrow(new RuntimeException())
+        .when(manualVspDataCollectionServiceMock)
+        .getAllowedFlavors(INVALID_VSP_ID, Version.valueOf(VSP_VERSION), USER);
+    doThrow(new RuntimeException())
+        .when(manualVspDataCollectionServiceMock)
+        .getVspComponentImages(INVALID_VSP_ID, Version.valueOf(VSP_VERSION), USER);
+    doThrow(new RuntimeException())
+        .when(manualVspDataCollectionServiceMock)
+        .getVspComponents(INVALID_VSP_ID, Version.valueOf(VSP_VERSION), USER);
+    doThrow(new RuntimeException())
+        .when(manualVspDataCollectionServiceMock)
+        .getVspComponentNics(INVALID_VSP_ID, Version.valueOf(VSP_VERSION), USER);
+    VspModelInfo vspModelInfo = manualVspToscaManagerMock.gatherVspInformation(INVALID_VSP_ID,
+        Version.valueOf(VSP_VERSION), USER);
+    Assert.assertEquals(expectedVspData, vspModelInfo);
+  }
+
+
+  @Test
+  public void testGatherVspInformationValidVsp() {
+    MockitoAnnotations.initMocks(this);
+    Map<String, DeploymentFlavorModel> deploymentFlavorData = getDeploymentFlavorData();
+    Map<String, List<Nic>> componentNics = getComponentNics();
+    Map<String, String> componentData = getComponentData();
+    Map<String, List<MultiFlavorVfcImage>> vfcImageData = getVfcImageData();
+    doReturn(Optional.of(RELEASE_VENDOR)).when(manualVspDataCollectionServiceMock)
+        .getReleaseVendor(VSP_ID, Version.valueOf(VSP_VERSION), USER);
+    doReturn(deploymentFlavorData).when(manualVspDataCollectionServiceMock)
+        .getAllowedFlavors(VSP_ID, Version.valueOf(VSP_VERSION), USER);
+    doReturn(vfcImageData).when(manualVspDataCollectionServiceMock)
+        .getVspComponentImages(VSP_ID, Version.valueOf(VSP_VERSION), USER);
+    doReturn(componentData).when(manualVspDataCollectionServiceMock)
+        .getVspComponents(VSP_ID, Version.valueOf(VSP_VERSION), USER);
+    doReturn(componentNics).when(manualVspDataCollectionServiceMock)
+        .getVspComponentNics(VSP_ID, Version.valueOf(VSP_VERSION), USER);
+    VspModelInfo vspModelInfo = manualVspToscaManagerMock.gatherVspInformation(VSP_ID,
+        Version.valueOf(VSP_VERSION), USER);
+
+    VspModelInfo expectedVspData = new VspModelInfo();
+    expectedVspData.setReleaseVendor(RELEASE_VENDOR);
+    expectedVspData.setComponents(getComponentData());
+    expectedVspData.setMultiFlavorVfcImages(getVfcImageData());
+    expectedVspData.setAllowedFlavors(getDeploymentFlavorData());
+    expectedVspData.setNics(getComponentNics());
+
+    Assert.assertEquals(expectedVspData, vspModelInfo);
+  }
+
   @Test
   public void testGenerateToscaInvalidVspId() {
     VspModelInfo emptyVspCollectedData = new VspModelInfo();
@@ -87,7 +163,7 @@
   @Test
   public void testGenerateToscaNoComponent() {
     VspModelInfo vspCollectedData = new VspModelInfo();
-    vspCollectedData.setReleaseVendor("Vendor-1");
+    vspCollectedData.setReleaseVendor(RELEASE_VENDOR);
     vspCollectedData.setComponents(null);
     vspCollectedData.setMultiFlavorVfcImages(null);
     vspCollectedData.setAllowedFlavors(getDeploymentFlavorData());
@@ -111,7 +187,6 @@
         manualVspToscaManager.generateToscaModel(vspCollectedData);
     Assert.assertNotNull(toscaServiceModel);
     Assert.assertNotNull(toscaServiceModel.getServiceTemplates());
-    //Service model should contain only the packed global types
     Assert.assertEquals(22, toscaServiceModel.getServiceTemplates().size());
     Map<String, ServiceTemplate> serviceTemplates = toscaServiceModel.getServiceTemplates();
     String entryDefinitionServiceTemplate = toscaServiceModel.getEntryDefinitionServiceTemplate();
@@ -131,7 +206,6 @@
         manualVspToscaManager.generateToscaModel(vspCollectedData);
     Assert.assertNotNull(toscaServiceModel);
     Assert.assertNotNull(toscaServiceModel.getServiceTemplates());
-    //Service model should contain only the packed global types
     Assert.assertEquals(22, toscaServiceModel.getServiceTemplates().size());
     Map<String, ServiceTemplate> serviceTemplates = toscaServiceModel.getServiceTemplates();
     String entryDefinitionServiceTemplate = toscaServiceModel.getEntryDefinitionServiceTemplate();
@@ -139,8 +213,8 @@
     Assert.assertNotNull(mainServiceTemplate);
     String componentName = vspCollectedData.getComponents().get(COMPONENT_ID);
     Assert.assertNull(mainServiceTemplate.getTopology_template().getNode_templates()
-        .get(componentName + GeneratorConstants.VFC_NODE_TEMPLATE_ID_SUFFIX)
-        .getProperties());
+        .get(componentName + GeneratorConstants.VNF_NODE_TEMPLATE_ID_SUFFIX)
+        .getProperties().get(IMAGES_PROPERTY));
   }
 
   @Test
@@ -154,7 +228,6 @@
         manualVspToscaManager.generateToscaModel(vspCollectedData);
     Assert.assertNotNull(toscaServiceModel);
     Assert.assertNotNull(toscaServiceModel.getServiceTemplates());
-    //Service model should contain only the packed global types
     Assert.assertEquals(22, toscaServiceModel.getServiceTemplates().size());
     Map<String, ServiceTemplate> serviceTemplates = toscaServiceModel.getServiceTemplates();
     String componentName = vspCollectedData.getComponents().get(COMPONENT_ID);
@@ -171,7 +244,7 @@
   @Test
   public void testGenerateToscaNoManufacturerRefNumAndFeatureGroup() {
     VspModelInfo vspCollectedData = new VspModelInfo();
-    vspCollectedData.setReleaseVendor("Vendor-1");
+    vspCollectedData.setReleaseVendor(RELEASE_VENDOR);
     vspCollectedData.setComponents(getComponentData());
     vspCollectedData.setMultiFlavorVfcImages(getVfcImageData());
     Map<String, DeploymentFlavorModel> deploymentFlavorData = getDeploymentFlavorData();
@@ -184,7 +257,6 @@
         manualVspToscaManager.generateToscaModel(vspCollectedData);
     Assert.assertNotNull(toscaServiceModel);
     Assert.assertNotNull(toscaServiceModel.getServiceTemplates());
-    //Service model should contain only the packed global types
     Assert.assertEquals(22, toscaServiceModel.getServiceTemplates().size());
     Map<String, ServiceTemplate> serviceTemplates = toscaServiceModel.getServiceTemplates();
     String entryDefinitionServiceTemplate = toscaServiceModel.getEntryDefinitionServiceTemplate();
@@ -204,7 +276,7 @@
   @Test
   public void testGenerateToscaNoDeploymentFlavor() {
     VspModelInfo vspCollectedData = new VspModelInfo();
-    vspCollectedData.setReleaseVendor("Vendor-1");
+    vspCollectedData.setReleaseVendor(RELEASE_VENDOR);
     vspCollectedData.setComponents(getComponentData());
     vspCollectedData.setMultiFlavorVfcImages(getVfcImageData());
     vspCollectedData.setAllowedFlavors(null);
@@ -213,7 +285,6 @@
         manualVspToscaManager.generateToscaModel(vspCollectedData);
     Assert.assertNotNull(toscaServiceModel);
     Assert.assertNotNull(toscaServiceModel.getServiceTemplates());
-    //Service model should contain only the packed global types
     Assert.assertEquals(22, toscaServiceModel.getServiceTemplates().size());
     Map<String, ServiceTemplate> serviceTemplates = toscaServiceModel.getServiceTemplates();
     String entryDefinitionServiceTemplate = toscaServiceModel.getEntryDefinitionServiceTemplate();
@@ -228,7 +299,7 @@
   @Test
   public void testGenerateToscaCompleteData() {
     VspModelInfo vspCollectedData = new VspModelInfo();
-    vspCollectedData.setReleaseVendor("Vendor-1");
+    vspCollectedData.setReleaseVendor(RELEASE_VENDOR);
     vspCollectedData.setComponents(getComponentData());
     vspCollectedData.setMultiFlavorVfcImages(getVfcImageData());
     vspCollectedData.setAllowedFlavors(getDeploymentFlavorData());
@@ -237,31 +308,23 @@
         manualVspToscaManager.generateToscaModel(vspCollectedData);
     Assert.assertNotNull(toscaServiceModel);
     Assert.assertNotNull(toscaServiceModel.getServiceTemplates());
-    //Service model should contain only the packed global types
     Assert.assertEquals(22, toscaServiceModel.getServiceTemplates().size());
     Map<String, ServiceTemplate> serviceTemplates = toscaServiceModel.getServiceTemplates();
     String entryDefinitionServiceTemplate = toscaServiceModel.getEntryDefinitionServiceTemplate();
     ServiceTemplate mainServiceTemplate = serviceTemplates.get(entryDefinitionServiceTemplate);
     Assert.assertNotNull(mainServiceTemplate);
     String componentName = vspCollectedData.getComponents().get(COMPONENT_ID);
-
-    Assert.assertNotNull(mainServiceTemplate.getTopology_template().getNode_templates()
-        .get(componentName + GeneratorConstants.VFC_NODE_TEMPLATE_ID_SUFFIX));
     Assert.assertNotNull(mainServiceTemplate.getTopology_template().getNode_templates()
         .get(componentName + GeneratorConstants.VNF_NODE_TEMPLATE_ID_SUFFIX));
     //Validate vnf configuration node template
     validateVnfConfigurationNodeTemplate(mainServiceTemplate, componentName);
-    //Validate vfc node template
-    validateVfcNodeTemplateinMainServiceTemplate(mainServiceTemplate, componentName);
     //Validate vnf node template
     validateVnfNodeTemplate(mainServiceTemplate, componentName);
-
     //Validate substitution service template
     ServiceTemplate substitutionServiceTemplate = toscaServiceModel.getServiceTemplates()
         .get(componentName + GeneratorConstants.TOSCA_SERVICE_TEMPLATE_FILE_NAME_SUFFIX);
     List<Nic> nics = vspCollectedData.getNics().get(COMPONENT_ID);
     validateSubstitutionServiceTemplate(substitutionServiceTemplate, nics, componentName);
-
     //Validate global substitution service template
     ServiceTemplate globalSubstitutionServiceTemplate = toscaServiceModel.getServiceTemplates()
         .get(ToscaUtil.getServiceTemplateFileName(GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME));
@@ -284,24 +347,18 @@
     Assert.assertEquals(deploymentFlavorData, allowedFlavors);
   }
 
-  private void validateVfcNodeTemplateinMainServiceTemplate(ServiceTemplate mainServiceTemplate,
-                                                            String componentName) {
-    NodeTemplate vfcNodeTemplate =
-        mainServiceTemplate.getTopology_template().getNode_templates()
-            .get(componentName + GeneratorConstants.VFC_NODE_TEMPLATE_ID_SUFFIX);
-    Assert.assertNotNull(vfcNodeTemplate);
-    Assert.assertEquals(ToscaNodeType.MULTIFLAVOR_VFC_NODE_TYPE, vfcNodeTemplate.getType());
+  private void validateImagePropertyData(NodeTemplate vnfNodeTemplate, String componentName) {
     Map<String, MultiFlavorVfcImage> vfcImages = (Map<String, MultiFlavorVfcImage>)
-        vfcNodeTemplate.getProperties().get(GeneratorConstants.IMAGES_PROPERTY);
+        vnfNodeTemplate.getProperties().get(GeneratorConstants.IMAGES_PROPERTY);
     Assert.assertNotNull(vfcImages);
     Assert.assertEquals(2, vfcImages.size());
     MultiFlavorVfcImage image1 = vfcImages.get(IMAGE_VERSION_1);
     MultiFlavorVfcImage expectedImage1 = getImageData(IMAGE_VERSION_1, IMAGE_HASH_1,
-        IMAGE_FILE_NAME_1, "md5", IMAGE_FILE_FORMAT_1);
+        IMAGE_FILE_NAME_1, "md5");
     Assert.assertEquals(expectedImage1, image1);
     MultiFlavorVfcImage image2 = vfcImages.get(IMAGE_VERSION_2);
     MultiFlavorVfcImage expectedImage2 = getImageData(IMAGE_VERSION_2, IMAGE_HASH_2,
-        IMAGE_FILE_NAME_2, "md5", IMAGE_FILE_FORMAT_2);
+        IMAGE_FILE_NAME_2, "md5");
     Assert.assertEquals(expectedImage2, image2);
   }
 
@@ -311,12 +368,11 @@
         mainServiceTemplate.getTopology_template().getNode_templates()
             .get(componentName + GeneratorConstants.VNF_NODE_TEMPLATE_ID_SUFFIX);
     Assert.assertNotNull(vnfNodeTemplate);
-    Assert.assertEquals(ToscaNodeType.MULTIDEPLOYMENTFLAVOR_NODE_TYPE + "." + componentName,
-        vnfNodeTemplate.getType());
+    Assert.assertEquals(ToscaNodeType.MULTIDEPLOYMENTFLAVOR_NODE_TYPE, vnfNodeTemplate.getType());
     Assert.assertNotNull(vnfNodeTemplate.getDirectives());
     Assert.assertEquals(true, vnfNodeTemplate.getDirectives().contains(ToscaConstants
         .NODE_TEMPLATE_DIRECTIVE_SUBSTITUTABLE));
-
+    validateImagePropertyData(vnfNodeTemplate, componentName);
     Map<String, Object> serviceTemplateFilterProperty = (Map<String, Object>) vnfNodeTemplate
         .getProperties().get(SERVICE_TEMPLATE_FILTER_PROPERTY_NAME);
     Assert.assertNotNull(serviceTemplateFilterProperty);
@@ -372,8 +428,8 @@
   private void validateSubstitutionMappings(SubstitutionMapping substitutionMappings,
                                             List<Nic> nics,
                                             String componentName) {
-    Assert.assertEquals(ToscaNodeType.MULTIDEPLOYMENTFLAVOR_NODE_TYPE + "." + componentName,
-        substitutionMappings.getNode_type());
+    Assert.assertEquals(ToscaNodeType.MULTIDEPLOYMENTFLAVOR_NODE_TYPE, substitutionMappings
+        .getNode_type());
     Map<String, List<String>> capabilities = substitutionMappings.getCapabilities();
     validateSubstitutionCapabilities(capabilities, componentName);
     Map<String, List<String>> requirements = substitutionMappings.getRequirements();
@@ -420,7 +476,7 @@
     Map<String, NodeType> nodeTypes = globalSubstitutionServiceTemplate.getNode_types();
     Assert.assertEquals(1, nodeTypes.size());
     NodeType deploymentFlavorNodeType =
-        nodeTypes.get(ToscaNodeType.MULTIDEPLOYMENTFLAVOR_NODE_TYPE + "." + componentName);
+        nodeTypes.get(ToscaNodeType.MULTIDEPLOYMENTFLAVOR_NODE_TYPE);
     Assert.assertNotNull(deploymentFlavorNodeType);
     Map<String, PropertyDefinition> properties = deploymentFlavorNodeType.getProperties();
     Assert.assertNotNull(properties);
@@ -475,9 +531,9 @@
     Map<String, List<MultiFlavorVfcImage>> imageData = new HashMap<>();
     List<MultiFlavorVfcImage> images = new ArrayList<>(2);
     MultiFlavorVfcImage image1 = getImageData(IMAGE_VERSION_1, IMAGE_HASH_1, IMAGE_FILE_NAME_1,
-        "md5", IMAGE_FILE_FORMAT_1);
+        "md5");
     MultiFlavorVfcImage image2 = getImageData(IMAGE_VERSION_2, IMAGE_HASH_2, IMAGE_FILE_NAME_2,
-        "md5", IMAGE_FILE_FORMAT_2);
+        "md5");
     images.add(image1);
     images.add(image2);
     imageData.put(COMPONENT_ID, images);
@@ -522,10 +578,10 @@
     return computeFlavor;
   }
 
-  private VendorInfo getVendorInfo(String manufacturerRefNumber, String vlmId) {
+  private VendorInfo getVendorInfo(String manufacturerRefNumber, String deploymentFlavorModel) {
     VendorInfo vendorInfo = new VendorInfo();
     vendorInfo.setManufacturer_reference_number(manufacturerRefNumber);
-    vendorInfo.setVendor_model(vlmId);
+    vendorInfo.setVendor_model(deploymentFlavorModel);
     return vendorInfo;
   }
 
@@ -535,13 +591,13 @@
     return licenseFlavor;
   }
 
-  private MultiFlavorVfcImage getImageData(String imageVersion, String fileHash, String fileName,
-                                           String fileHashType, String fileFormat) {
+  private MultiFlavorVfcImage getImageData(String imageVersion, String fileHash,
+                                           String fileName, String fileHashType) {
     MultiFlavorVfcImage image = new MultiFlavorVfcImage();
     image.setSoftware_version(imageVersion);
     image.setFile_hash(fileHash);
     image.setFile_hash_type(fileHashType);
-    image.setFile_name(fileName+"-"+IMAGE_VERSION_2+"."+fileFormat);
+    image.setFile_name(fileName);
     return image;
   }
 
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/NicManagerImplTest.java b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/NicManagerImplTest.java
index b2cfba7..fe275e9 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/NicManagerImplTest.java
+++ b/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/test/java/org/openecomp/sdc/vendorsoftwareproduct/impl/NicManagerImplTest.java
@@ -110,6 +110,31 @@
   }
 
   @Test
+  public void testCreateWithIncorrectNicNameFormat() {
+    NicEntity nicEntity = createNic(VSP_ID, VERSION, COMPONENT_ID, NIC1_ID, NETWORK1_ID);
+    Nic nic = nicEntity.getNicCompositionData();
+    nic.setNetworkType(NetworkType.Internal);
+    nicEntity.setNicCompositionData(nic);
+    doReturn(true).when(vspInfoDao).isManual(anyObject(),anyObject());
+    Collection<NicEntity> nicEntities = new ArrayList<>();
+
+    NicEntity nicEntityDiffName = createNic(VSP_ID, VERSION, COMPONENT_ID, NIC1_ID, NETWORK1_ID);
+    Nic newNameNic = nicEntityDiffName.getNicCompositionData();
+    newNameNic.setName(NIC1_ID + "_Name/*");
+    nicEntityDiffName.setNicCompositionData(newNameNic);
+    nicEntities.add(nicEntityDiffName);
+    doReturn(nicEntities).when(nicDao).list(anyObject());
+    doReturn(nicEntity).when(compositionEntityDataManagerMock).createNic(anyObject());
+
+    try {
+      NicEntity created = nicManager.createNic(nicEntity,USER);
+    }  catch (CoreException exception) {
+            Assert.assertEquals(VendorSoftwareProductErrorCodes.NIC_NAME_FORMAT_NOT_ALLOWED,
+              exception.code().id());
+    }
+  }
+
+  @Test
   public void testCreateWithDupNicName() {
     NicEntity nicEntity = createNic(VSP_ID, VERSION, COMPONENT_ID, NIC1_ID, NETWORK1_ID);
     Nic nic = nicEntity.getNicCompositionData();
@@ -120,7 +145,7 @@
 
     NicEntity nicEntityDiffName = createNic(VSP_ID, VERSION, COMPONENT_ID, NIC1_ID, NETWORK1_ID);
     Nic newNameNic = nicEntityDiffName.getNicCompositionData();
-    newNameNic.setName(NIC1_ID + " Name");
+    newNameNic.setName(NIC1_ID + "_Name");
     nicEntityDiffName.setNicCompositionData(newNameNic);
     nicEntities.add(nicEntityDiffName);
     doReturn(nicEntities).when(nicDao).list(anyObject());
@@ -282,7 +307,7 @@
 
     NicEntity nicEntity = new NicEntity(VSP_ID, VERSION, COMPONENT_ID, NIC1_ID);
     Nic nicData = new Nic();
-    nicData.setName(NIC1_ID + " name updated");
+    nicData.setName(NIC1_ID + "_name_updated");
     nicData.setDescription(NIC1_ID + " desc updated");
     nicData.setNetworkId(NETWORK1_ID);
     nicEntity.setNicCompositionData(nicData);
@@ -294,6 +319,36 @@
     verify(nicDao, never()).update(nicEntity);
   }
 
+  @Test
+  public void testUpdateIncorrectNameFormat() {
+    doReturn(createNic(VSP_ID, VERSION, COMPONENT_ID, NIC1_ID, NETWORK1_ID))
+            .when(nicDao).get(anyObject());
+
+    CompositionEntityValidationData toBeReturned =
+            new CompositionEntityValidationData(CompositionEntityType.nic, NIC1_ID);
+    toBeReturned.setErrors(Arrays.asList("error1", "error2"));
+    doReturn(toBeReturned)
+            .when(compositionEntityDataManagerMock)
+            .validateEntity(anyObject(), anyObject(), anyObject());
+    doReturn(true).when(vspInfoDao).isManual(anyObject(), anyObject());
+
+    NicEntity nicEntity = new NicEntity(VSP_ID, VERSION, COMPONENT_ID, NIC1_ID);
+    Nic nicData = new Nic();
+    nicData.setName(NIC1_ID + "_name_updated/*");
+    nicData.setDescription(NIC1_ID + " desc updated");
+    nicData.setNetworkId(NETWORK1_ID);
+    nicEntity.setNicCompositionData(nicData);
+
+    try {
+      nicManager.updateNic(nicEntity, USER);
+      Assert.fail();
+    }
+    catch (CoreException ex) {
+      Assert.assertEquals(VendorSoftwareProductErrorCodes.NIC_NAME_FORMAT_NOT_ALLOWED,
+              ex.code().id());
+    }
+  }
+
 
   @Test
   public void testGetNonExistingNicId_negative() {
@@ -426,7 +481,7 @@
                              String networkId) {
     NicEntity nicEntity = new NicEntity(vspId, version, compId, nicId);
     Nic nicData = new Nic();
-    nicData.setName(nicId + " name");
+    nicData.setName(nicId + "_name");
     nicData.setDescription(nicId + " desc");
     nicData.setNetworkId(networkId);
     nicEntity.setNicCompositionData(nicData);
diff --git a/openecomp-be/backend/pom.xml.versionsBackup b/openecomp-be/backend/pom.xml.versionsBackup
deleted file mode 100644
index 15ac71b..0000000
--- a/openecomp-be/backend/pom.xml.versionsBackup
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <parent>
-        <artifactId>openecomp-sdc</artifactId>
-        <groupId>org.openecomp.sdc</groupId>
-        <version>1.0-SNAPSHOT</version>
-    </parent>
-
-    <groupId>org.openecomp.sdc</groupId>
-    <artifactId>backend</artifactId>
-    <packaging>pom</packaging>
-
-    <modules>
-        <module>openecomp-sdc-vendor-license-manager</module>
-        <module>openecomp-sdc-vendor-software-product-manager</module>
-        <module>openecomp-sdc-validation-manager</module>
-        <module>openecomp-sdc-action-manager</module>
-        <module>openecomp-sdc-application-config-manager</module>
-    </modules>
-
-    
-</project>
diff --git a/openecomp-be/configuration/pom.xml.versionsBackup b/openecomp-be/configuration/pom.xml.versionsBackup
deleted file mode 100644
index a627e11..0000000
--- a/openecomp-be/configuration/pom.xml.versionsBackup
+++ /dev/null
@@ -1,17 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-	<modelVersion>4.0.0</modelVersion>
-
-	<artifactId>openecomp-sdc-configuration</artifactId>
-	<name>openecomp-sdc-configuration</name>
-	<version>1.0-SNAPSHOT</version>
-	<packaging>pom</packaging>
-
-
-	<parent>
-		<groupId>org.openecomp.sdc</groupId>
-		<artifactId>openecomp-sdc</artifactId>
-		<version>1.0-SNAPSHOT</version>
-	</parent>
-
-</project>
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-common-lib/pom.xml b/openecomp-be/lib/openecomp-common-lib/pom.xml
index 0ebbf06..747ba4a 100644
--- a/openecomp-be/lib/openecomp-common-lib/pom.xml
+++ b/openecomp-be/lib/openecomp-common-lib/pom.xml
@@ -35,16 +35,6 @@
             <version>${logback.version}</version>
         </dependency>
         <dependency>
-            <groupId>org.openecomp.sdc.core</groupId>
-            <artifactId>openecomp-utilities-lib</artifactId>
-            <version>1.1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>commons-io</groupId>
-            <artifactId>commons-io</artifactId>
-            <version>2.5</version>
-        </dependency>
-        <dependency>
             <groupId>commons-io</groupId>
             <artifactId>commons-io</artifactId>
             <version>2.5</version>
diff --git a/openecomp-be/lib/openecomp-common-lib/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-common-lib/pom.xml.versionsBackup
deleted file mode 100644
index e2333b5..0000000
--- a/openecomp-be/lib/openecomp-common-lib/pom.xml.versionsBackup
+++ /dev/null
@@ -1,44 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <groupId>org.openecomp.core</groupId>
-    <name>openecomp-common-lib</name>
-    <dependencies>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-utilities-lib</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-datatypes-lib</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>javax.ws.rs</groupId>
-            <artifactId>javax.ws.rs-api</artifactId>
-            <version>2.0-m10</version>
-        </dependency>
-        <dependency>
-            <groupId>ch.qos.logback</groupId>
-            <artifactId>logback-classic</artifactId>
-            <version>${logback.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-utilities-lib</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-    </dependencies>
-
-    <artifactId>openecomp-common-lib</artifactId>
-
-    <parent>
-        <artifactId>openecomp-sdc-lib</artifactId>
-        <groupId>org.openecomp.sdc</groupId>
-        <version>1.0-SNAPSHOT</version>
-    </parent>
-
-
-</project>
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-config-lib/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-core-lib/openecomp-config-lib/pom.xml.versionsBackup
deleted file mode 100644
index 7d6cd8f..0000000
--- a/openecomp-be/lib/openecomp-core-lib/openecomp-config-lib/pom.xml.versionsBackup
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <dependencies>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-nosqldb-core</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.testng</groupId>
-            <artifactId>testng</artifactId>
-            <version>6.9.10</version>
-            <scope>test</scope>
-        </dependency>
-        <!--dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-vendor-software-product-api</artifactId>
-            <version>1.0-SNAPSHOT</version>
-            <scope>test</scope>
-        </dependency-->
-    </dependencies>
-
-    <parent>
-        <groupId>org.openecomp.core</groupId>
-        <artifactId>openecomp-core-lib</artifactId>
-        <version>1.0-SNAPSHOT</version>
-    </parent>
-
-    <artifactId>openecomp-config-lib</artifactId>
-    <version>1.0-SNAPSHOT</version>
-
-    
-</project>
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-facade-lib/openecomp-facade-api/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-core-lib/openecomp-facade-lib/openecomp-facade-api/pom.xml.versionsBackup
deleted file mode 100644
index be88b27..0000000
--- a/openecomp-be/lib/openecomp-core-lib/openecomp-facade-lib/openecomp-facade-api/pom.xml.versionsBackup
+++ /dev/null
@@ -1,35 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <name>openecomp-facade-api</name>
-    <artifactId>openecomp-facade-api</artifactId>
-    <groupId>org.openecomp.core</groupId>
-
-    <parent>
-        <groupId>org.openecomp.sdc</groupId>
-        <artifactId>openecomp-sdc-lib</artifactId>
-        <version>1.0-SNAPSHOT</version>
-        <relativePath>../../..</relativePath>
-    </parent>
-
-    <dependencies>
-
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-utilities-lib</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-common-lib</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-utilities-lib</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-    </dependencies>
-
-</project>
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-facade-lib/openecomp-facade-core/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-core-lib/openecomp-facade-lib/openecomp-facade-core/pom.xml.versionsBackup
deleted file mode 100644
index 72ce7fa..0000000
--- a/openecomp-be/lib/openecomp-core-lib/openecomp-facade-lib/openecomp-facade-core/pom.xml.versionsBackup
+++ /dev/null
@@ -1,41 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <artifactId>openecomp-facade-core</artifactId>
-    <name>openecomp-facade-core</name>
-    <groupId>org.openecomp.core</groupId>
-    <parent>
-        <artifactId>openecomp-sdc-lib</artifactId>
-        <groupId>org.openecomp.sdc</groupId>
-        <version>1.0-SNAPSHOT</version>
-        <relativePath>../../..</relativePath>
-    </parent>
-
-
-    <dependencies>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-utilities-lib</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-common-lib</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-facade-api</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-facade-api</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-    </dependencies>
-
-
-
-</project>
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-facade-lib/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-core-lib/openecomp-facade-lib/pom.xml.versionsBackup
deleted file mode 100644
index c4d0d1f..0000000
--- a/openecomp-be/lib/openecomp-core-lib/openecomp-facade-lib/pom.xml.versionsBackup
+++ /dev/null
@@ -1,34 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <name>openecomp-facade-lib</name>
-    <artifactId>openecomp-facade-lib</artifactId>
-
-    <packaging>pom</packaging>
-    <parent>
-        <artifactId>openecomp-core-lib</artifactId>
-        <groupId>org.openecomp.core</groupId>
-        <version>1.0-SNAPSHOT</version>
-    </parent>
-
-    <modules>
-        <module>openecomp-facade-api</module>
-        <module>openecomp-facade-core</module>
-    </modules>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-facade-api</artifactId>
-            <version>${project.version}</version>
-            <scope>compile</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-facade-core</artifactId>
-            <version>${project.version}</version>
-            <scope>runtime</scope>
-        </dependency>
-    </dependencies>
-</project>
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/openecomp-nosqldb-api/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/openecomp-nosqldb-api/pom.xml.versionsBackup
deleted file mode 100644
index 288274d..0000000
--- a/openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/openecomp-nosqldb-api/pom.xml.versionsBackup
+++ /dev/null
@@ -1,45 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <name>openecomp-nosqldb-api</name>
-    <artifactId>openecomp-nosqldb-api</artifactId>
-    <groupId>org.openecomp.core</groupId>
-
-    <parent>
-        <artifactId>openecomp-sdc-lib</artifactId>
-        <groupId>org.openecomp.sdc</groupId>
-        <version>1.0-SNAPSHOT</version>
-        <relativePath>../../..</relativePath>
-    </parent>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-facade-api</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>com.datastax.cassandra</groupId>
-            <artifactId>cassandra-driver-core</artifactId>
-            <version>${datasatx.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>com.datastax.cassandra</groupId>
-            <artifactId>cassandra-driver-mapping</artifactId>
-            <version>${datasatx.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-facade-core</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-logging-core</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-    </dependencies>
-
-
-</project>
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/openecomp-nosqldb-core/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/openecomp-nosqldb-core/pom.xml.versionsBackup
deleted file mode 100644
index fa859a0..0000000
--- a/openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/openecomp-nosqldb-core/pom.xml.versionsBackup
+++ /dev/null
@@ -1,46 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <name>openecomp-nosqldb-core</name>
-    <artifactId>openecomp-nosqldb-core</artifactId>
-    <groupId>org.openecomp.core</groupId>
-    <parent>
-        <artifactId>openecomp-sdc-lib</artifactId>
-        <groupId>org.openecomp.sdc</groupId>
-        <version>1.0-SNAPSHOT</version>
-        <relativePath>../../..</relativePath>
-    </parent>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-nosqldb-api</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.mockito</groupId>
-            <artifactId>mockito-all</artifactId>
-            <scope>test</scope>
-            <version>1.10.19</version>
-        </dependency>
-        <dependency>
-            <groupId>org.testng</groupId>
-            <artifactId>testng</artifactId>
-            <scope>test</scope>
-            <version>6.8.5</version>
-            <exclusions>
-                <exclusion>
-                    <artifactId>snakeyaml</artifactId>
-                    <groupId>org.yaml</groupId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <scope>test</scope>
-            <version>4.11</version>
-        </dependency>
-    </dependencies>
-</project>
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/pom.xml.versionsBackup
deleted file mode 100644
index 3a4bfd4..0000000
--- a/openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/pom.xml.versionsBackup
+++ /dev/null
@@ -1,35 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <name>openecomp-nosqldb-lib</name>
-    <artifactId>openecomp-nosqldb-lib</artifactId>
-    <groupId>org.openecomp.core</groupId>
-    <packaging>pom</packaging>
-    <parent>
-        <artifactId>openecomp-sdc-lib</artifactId>
-        <groupId>org.openecomp.sdc</groupId>
-        <version>1.0-SNAPSHOT</version>
-        <relativePath>../..</relativePath>
-    </parent>
-
-    <modules>
-        <module>openecomp-nosqldb-api</module>
-        <module>openecomp-nosqldb-core</module>
-    </modules>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-nosqldb-api</artifactId>
-            <version>${project.version}</version>
-            <scope>compile</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-nosqldb-core</artifactId>
-            <version>${project.version}</version>
-            <scope>runtime</scope>
-        </dependency>
-    </dependencies>
-</project>
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/pom.xml.versionsBackup
deleted file mode 100644
index 1e448f5..0000000
--- a/openecomp-be/lib/openecomp-core-lib/openecomp-utilities-lib/pom.xml.versionsBackup
+++ /dev/null
@@ -1,83 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <name>openecomp-utilities-lib</name>
-    <artifactId>openecomp-utilities-lib</artifactId>
-
-
-    <parent>
-        <artifactId>openecomp-core-lib</artifactId>
-        <groupId>org.openecomp.core</groupId>
-        <version>1.0-SNAPSHOT</version>
-    </parent>
-
-
-
-    <dependencies>
-        <dependency>
-            <groupId>org.yaml</groupId>
-            <artifactId>snakeyaml</artifactId>
-            <version>1.17</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.commons</groupId>
-            <artifactId>commons-lang3</artifactId>
-            <version>3.4</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.commons</groupId>
-            <artifactId>commons-collections4</artifactId>
-            <version>4.1</version>
-        </dependency>
-        <dependency>
-            <groupId>com.google.code.gson</groupId>
-            <artifactId>gson</artifactId>
-            <version>2.3.1</version>
-        </dependency>
-        <dependency>
-            <groupId>commons-codec</groupId>
-            <artifactId>commons-codec</artifactId>
-            <version>${commons.codec.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <scope>test</scope>
-            <version>4.11</version>
-        </dependency>
-        <dependency>
-            <groupId>org.codehaus.jackson</groupId>
-            <artifactId>jackson-mapper-asl</artifactId>
-            <version>1.9.13</version>
-        </dependency>
-        <dependency>
-            <groupId>org.everit.json</groupId>
-            <artifactId>org.everit.json.schema</artifactId>
-            <version>1.3.0</version>
-        </dependency>
-        <dependency>
-            <groupId>org.testng</groupId>
-            <artifactId>testng</artifactId>
-            <scope>test</scope>
-            <version>6.8.5</version>
-            <exclusions>
-                <exclusion>
-                    <artifactId>snakeyaml</artifactId>
-                    <groupId>org.yaml</groupId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-logging-api</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>com.google.code.gson</groupId>
-            <artifactId>gson</artifactId>
-            <version>2.3.1</version>
-        </dependency>
-    </dependencies>
-
-</project>
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-core-lib/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-core-lib/pom.xml.versionsBackup
deleted file mode 100644
index d02ce28..0000000
--- a/openecomp-be/lib/openecomp-core-lib/pom.xml.versionsBackup
+++ /dev/null
@@ -1,22 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <groupId>org.openecomp.core</groupId>
-    <name>openecomp-core-lib</name>
-    <artifactId>openecomp-core-lib</artifactId>
-
-    <packaging>pom</packaging>
-    <parent>
-        <artifactId>openecomp-sdc-lib</artifactId>
-        <groupId>org.openecomp.sdc</groupId>
-        <version>1.0-SNAPSHOT</version>
-    </parent>
-
-    <modules>
-        <module>/openecomp-facade-lib</module>
-        <module>/openecomp-nosqldb-lib</module>
-        <module>/openecomp-utilities-lib</module>
-        <module>/openecomp-config-lib</module>
-    </modules>
-</project>
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-api/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-api/pom.xml.versionsBackup
deleted file mode 100644
index c9d100d..0000000
--- a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-api/pom.xml.versionsBackup
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <dependencies>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-facade-core</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-facade-api</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-validation-api</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-    </dependencies>
-
-    <parent>
-        <groupId>org.openecomp.sdc</groupId>
-        <artifactId>openecomp-healing-lib</artifactId>
-        <version>1.0-SNAPSHOT</version>
-    </parent>
-
-    <groupId>org.openecomp.sdc</groupId>
-    <artifactId>openecomp-sdc-healing-api</artifactId>
-    <version>1.0-SNAPSHOT</version>
-
-    
-</project>
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-core/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-core/pom.xml.versionsBackup
deleted file mode 100644
index c48c325..0000000
--- a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-core/pom.xml.versionsBackup
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <dependencies>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-healing-api</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-validation-api</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-vendor-software-product-api</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-    </dependencies>
-
-    <parent>
-        <groupId>org.openecomp.sdc</groupId>
-        <artifactId>openecomp-healing-lib</artifactId>
-        <version>1.0-SNAPSHOT</version>
-    </parent>
-
-    <groupId>org.openecomp.sdc</groupId>
-    <artifactId>openecomp-sdc-healing-core</artifactId>
-    <version>1.0-SNAPSHOT</version>
-
-    
-</project>
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/pom.xml.versionsBackup
deleted file mode 100644
index c5f9363..0000000
--- a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/pom.xml.versionsBackup
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <dependencies>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-healing-api</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-vendor-software-product-api</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-vendor-software-product-core</artifactId>
-            <version>1.0-SNAPSHOT</version>
-            <scope>runtime</scope>
-        </dependency>
-    </dependencies>
-
-    <parent>
-        <groupId>org.openecomp.sdc</groupId>
-        <artifactId>openecomp-healing-lib</artifactId>
-        <version>1.0-SNAPSHOT</version>
-    </parent>
-
-    <groupId>org.openecomp.sdc</groupId>
-    <artifactId>openecomp-sdc-healing-impl</artifactId>
-    <version>1.0-SNAPSHOT</version>
-
-    
-</project>
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/ComponentQuestionnaireHealer.java b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/ComponentQuestionnaireHealer.java
index c759d21..2e63a8d 100644
--- a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/ComponentQuestionnaireHealer.java
+++ b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/ComponentQuestionnaireHealer.java
@@ -1,5 +1,6 @@
 package org.openecomp.sdc.healing.healers;
 
+import com.google.gson.JsonElement;
 import com.google.gson.JsonObject;
 import com.google.gson.JsonParser;
 import org.openecomp.sdc.common.utils.SdcCommon;
@@ -7,9 +8,15 @@
 import org.openecomp.sdc.logging.context.impl.MdcDataDebugMessage;
 import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDao;
 import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDaoFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ComputeDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ComputeDaoFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ImageDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ImageDaoFactory;
 import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductDao;
 import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductDaoFactory;
 import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComputeEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ImageEntity;
 import org.openecomp.sdc.versioning.dao.types.Version;
 
 import java.util.Collection;
@@ -17,13 +24,31 @@
 
 
 public class ComponentQuestionnaireHealer implements Healer {
-  /*private static final VendorSoftwareProductDao vendorSoftwareProductDao =
-      VendorSoftwareProductDaoFactory.getInstance().createInterface();*/
 
   private static final ComponentDao componentDao =
       ComponentDaoFactory.getInstance().createInterface();
+  private static final ComputeDao computeDao =
+      ComputeDaoFactory.getInstance().createInterface();
+  private static final ImageDao imageDao =
+      ImageDaoFactory.getInstance().createInterface();
+
   private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage();
 
+  public static final String GENERAL = "general";
+  public static final String IMAGE = "image";
+  public static final String FORMAT = "format";
+  public static final String CPU_OVER_SUBSCRIPTION_RATIO = "CpuOverSubscriptionRatio";
+  public static final String MEMORY_RAM = "MemoryRAM";
+  public static final String VM_SIZING = "vmSizing";
+  public static final String COMPUTE = "compute";
+  public static final String NUM_OF_VMS = "numOfVMs";
+  public static final String DISK = "disk";
+  public static final String IO_OP_PER_SEC = "IOOperationsPerSec";
+
+  public static final String COMPUTE_CPU_OVER_SUBSCRIPTION_RATIO = "cpuOverSubscriptionRatio";
+  public static final String COMPUTE_MEMORY_RAM = "memoryRAM";
+  public static final String COMPUTE_IO_OP_PER_SEC = "ioOperationsPerSec";
+
   public ComponentQuestionnaireHealer(){
 
   }
@@ -36,43 +61,133 @@
     Collection<ComponentEntity> componentEntities =
         componentDao.list(new ComponentEntity(vspId, version, null));
     componentEntities.forEach(componentEntity -> {
-      /*String questionnaire=vendorSoftwareProductDao.getComponent(vspId, version, componentEntity
-          .getId()).getQuestionnaireData();*/
       String questionnaire = componentDao.getQuestionnaireData(vspId, version, componentEntity
           .getId()).getQuestionnaireData();
+
       if (questionnaire != null) {
-      JsonParser jsonParser = new JsonParser();
-      JsonObject  json = (JsonObject) jsonParser.parse(questionnaire);
-        if (json.getAsJsonObject("compute") != null && json.getAsJsonObject("compute")
-            .getAsJsonObject("vmSizing") != null) {
-          json.getAsJsonObject("compute").remove("vmSizing");
-        }
+        JsonParser jsonParser = new JsonParser();
+        JsonObject  json = (JsonObject) jsonParser.parse(questionnaire);
 
-        if (json.getAsJsonObject("compute") != null && json.getAsJsonObject("compute")
-            .getAsJsonObject("numOfVMs") != null ) {
-          if (json.getAsJsonObject("compute").getAsJsonObject("numOfVMs").
-              get("CpuOverSubscriptionRatio") != null ) {
-            json.getAsJsonObject("compute").getAsJsonObject("numOfVMs").remove
-                ("CpuOverSubscriptionRatio");
-          }
-          if (json.getAsJsonObject("compute").getAsJsonObject("numOfVMs").
-              get("MemoryRAM") != null ) {
-            json.getAsJsonObject("compute").getAsJsonObject("numOfVMs").remove("MemoryRAM");
-          }
-        }
+        Collection<ComputeEntity> computeEntities = computeDao.list(new ComputeEntity(vspId,
+            version, componentEntity.getId(), null));
+        computeEntities.stream().forEach(
+            computeEntity -> {
+              populateComputeQuestionnaire(json, computeEntity);
+            }
+        );
 
-        if (json.getAsJsonObject("general") != null && json.getAsJsonObject("general")
-            .getAsJsonObject("image") != null && json.getAsJsonObject("general").getAsJsonObject
-            ("image").get("format") != null) {
-          json.getAsJsonObject("general").getAsJsonObject("image").remove("format");
-        }
-      String questionnaireData = json.toString();
-        /*vendorSoftwareProductDao.updateComponentQuestionnaire(vspId, version, componentEntity
-            .getId(),questionnaireData);*/
+        Collection<ImageEntity> imageEntities = imageDao.list(new ImageEntity(vspId,
+            version, componentEntity.getId(), null));
+        imageEntities.stream().forEach(
+            imageEntity -> {
+              populateImageQuestionnaire(json, imageEntity);
+            }
+        );
+
+        processDiskAttribute(json, "bootDiskSizePerVM");
+        processDiskAttribute(json, "ephemeralDiskSizePerVM");
+
+        String questionnaireData = json.toString();
         componentDao.updateQuestionnaireData(vspId, version, componentEntity.getId(),
             questionnaireData);
       }
     });
     return componentEntities;
   }
+
+  /**
+   * Move Disk Atributes from genral/image/  to genral/disk in component questionnaire itself
+   * @param json
+   * @param diskAttrName
+   * @param diskJsonObject
+   * @return
+   */
+  private void processDiskAttribute(JsonObject json, String diskAttrName) {
+    boolean isBootDisksizePerVM = isDiskAttributePresent(json, diskAttrName);
+    if (isBootDisksizePerVM) {
+      JsonObject diskJsonObject = json.getAsJsonObject(GENERAL).getAsJsonObject(DISK);
+      if (diskJsonObject == null) {
+        diskJsonObject = new JsonObject();
+      }
+
+      diskJsonObject.addProperty(diskAttrName, json.getAsJsonObject(GENERAL).getAsJsonObject(IMAGE)
+          .get(diskAttrName).getAsNumber());
+
+      json.getAsJsonObject(GENERAL).add(DISK, diskJsonObject);
+      json.getAsJsonObject(GENERAL).getAsJsonObject(IMAGE).remove(diskAttrName);
+    }
+  }
+
+  private boolean isDiskAttributePresent(JsonObject json, String diskAttrName) {
+    return json.getAsJsonObject(GENERAL) != null &&
+        json.getAsJsonObject(GENERAL).getAsJsonObject(IMAGE) != null &&
+        json.getAsJsonObject(GENERAL).getAsJsonObject (IMAGE).get(diskAttrName)
+            != null;
+  }
+
+  /**
+   * Move the required attributes from component to Image Questionnaire
+   * @param json
+   * @param imageEntity
+   */
+  private void populateImageQuestionnaire(JsonObject json, ImageEntity imageEntity) {
+    JsonObject general = getJsonObject(json, GENERAL);
+    boolean isImageFormat = general != null && json
+        .getAsJsonObject(GENERAL)
+        .getAsJsonObject(IMAGE) != null && json.getAsJsonObject(GENERAL).getAsJsonObject
+        (IMAGE).get(FORMAT) != null;
+    if (isImageFormat) {
+      JsonObject image = getJsonObject(general, IMAGE);
+      JsonElement jsonElement = image.get(FORMAT);
+      JsonObject jsonObject = new JsonObject();
+      jsonObject.add(FORMAT, jsonElement);
+      imageDao.updateQuestionnaireData(imageEntity.getVspId(), imageEntity.getVersion(), imageEntity
+          .getComponentId(),imageEntity.getId(), jsonObject.toString());
+      image.remove(FORMAT);
+    }
+  }
+
+  /**
+   * Move the required attributes from component to Compute Questionnaire
+   * @param json
+   * @param computeEntity
+   */
+  private void populateComputeQuestionnaire(JsonObject json, ComputeEntity computeEntity) {
+    JsonObject compute = getJsonObject(json, COMPUTE);
+    JsonObject vmSizing = getJsonObject(compute, VM_SIZING);
+    if (compute != null && vmSizing != null) {
+      JsonElement ioOperationsPerSec = vmSizing.get(IO_OP_PER_SEC);
+      if (ioOperationsPerSec != null) {
+        vmSizing.addProperty(COMPUTE_IO_OP_PER_SEC, ioOperationsPerSec.getAsNumber());
+        vmSizing.remove(IO_OP_PER_SEC);
+      }
+
+      JsonObject numberOfVms = getJsonObject(compute, NUM_OF_VMS);
+      if (numberOfVms != null ) {
+        JsonElement cpuRatio =  numberOfVms.get(CPU_OVER_SUBSCRIPTION_RATIO);
+        if (cpuRatio != null ) {
+          vmSizing.addProperty(COMPUTE_CPU_OVER_SUBSCRIPTION_RATIO, cpuRatio.getAsString());
+          numberOfVms.remove(CPU_OVER_SUBSCRIPTION_RATIO);
+        }
+        JsonElement memoryRam =  numberOfVms.get(MEMORY_RAM);
+        if (memoryRam != null ) {
+          vmSizing.addProperty(COMPUTE_MEMORY_RAM, memoryRam.getAsString());
+          numberOfVms.remove(MEMORY_RAM);
+        }
+      }
+
+      JsonObject computeQuestionnaireJsonObject = new JsonObject();
+      computeQuestionnaireJsonObject.add(VM_SIZING, vmSizing);
+      String computeQuestionnaire = computeQuestionnaireJsonObject != null ?
+          computeQuestionnaireJsonObject.toString() : null;
+      computeDao.updateQuestionnaireData(computeEntity.getVspId(), computeEntity.getVersion(),
+          computeEntity.getComponentId(), computeEntity.getId(), computeQuestionnaire);
+      compute.remove(VM_SIZING);
+
+    }
+  }
+
+  private JsonObject getJsonObject(JsonObject json, String name) {
+    return json.getAsJsonObject(name);
+  }
 }
diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/CompositionDataHealer.java b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/CompositionDataHealer.java
index 6fdf144..bdb7bc3 100644
--- a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/CompositionDataHealer.java
+++ b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/CompositionDataHealer.java
@@ -174,8 +174,8 @@
 
     Collection<ComputeEntity> computeEntities = computeDao.listByVsp(vspId, version);
     Collection<ImageEntity> imageEntities = imageDao.listByVsp(vspId, version);
-    Collection<DeploymentFlavorEntity> deploymentFlavorEntities = deloymentFlavorDao.list(new
-        DeploymentFlavorEntity(vspId, version, null));
+    //Collection<DeploymentFlavorEntity> deploymentFlavorEntities = deloymentFlavorDao.list(new
+        //DeploymentFlavorEntity(vspId, version, null));
 
     if (CollectionUtils.isEmpty(computeEntities) && CollectionUtils.isEmpty(imageEntities)) {
       for (Component component : compositionData.getComponents()) {
@@ -195,9 +195,9 @@
 
     }
 
-    if (CollectionUtils.isEmpty(deploymentFlavorEntities)) {
+    /*if (CollectionUtils.isEmpty(deploymentFlavorEntities)) {
       compositionEntityDataManager.saveDeploymentFlavors(vspId,version,compositionData);
-    }
+    }*/
   }
 
   private CompositionData healCompositionData(String vspId, Version version,
diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/VlmVersionHealer.java b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/VlmVersionHealer.java
index 5eb15bf..6a82d8f 100644
--- a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/VlmVersionHealer.java
+++ b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/VlmVersionHealer.java
@@ -21,6 +21,7 @@
 import java.util.Collection;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 import java.util.Optional;
 
 /**
@@ -44,6 +45,11 @@
 
     VspDetails vspDetails = vspInfoDao.get(new VspDetails(vspId, version));
     VersionedVendorLicenseModel vendorLicenseModel;
+    
+    if(!Objects.isNull(vspDetails.getVlmVersion())) {
+      return Optional.empty();
+    }
+
 
     try{
       vendorLicenseModel =
@@ -61,6 +67,7 @@
         new ArrayList<>(
             licenseAgreementDao.list(new LicenseAgreementEntity(vlmId, vlmVersion, null)));
 
+
     vspDetails.setVlmVersion(vlmVersion);
     vspDetails.setLicenseAgreement(laList.get(0).getId());
     vspDetails.setFeatureGroups(new ArrayList<>(laList.get(0).getFeatureGroupIds()));
diff --git a/openecomp-be/lib/openecomp-healing-lib/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-healing-lib/pom.xml.versionsBackup
deleted file mode 100644
index 02ba7f1..0000000
--- a/openecomp-be/lib/openecomp-healing-lib/pom.xml.versionsBackup
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <parent>
-        <groupId>org.openecomp.sdc</groupId>
-        <artifactId>openecomp-sdc-lib</artifactId>
-        <version>1.0-SNAPSHOT</version>
-    </parent>
-
-    <groupId>org.openecomp.sdc</groupId>
-    <artifactId>openecomp-healing-lib</artifactId>
-    <version>1.0-SNAPSHOT</version>
-    <packaging>pom</packaging>
-
-    <modules>
-        <module>openecomp-sdc-healing-api</module>
-        <module>openecomp-sdc-healing-core</module>
-        <module>openecomp-sdc-healing-impl</module>
-    </modules>
-</project>
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-heat-lib/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-heat-lib/pom.xml.versionsBackup
deleted file mode 100644
index f434a8e..0000000
--- a/openecomp-be/lib/openecomp-heat-lib/pom.xml.versionsBackup
+++ /dev/null
@@ -1,50 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <groupId>org.openecomp.core</groupId>
-    <name>openecomp-heat-lib</name>
-    <dependencies>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-utilities-lib</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-datatypes-lib</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-common-lib</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>ch.qos.logback</groupId>
-            <artifactId>logback-classic</artifactId>
-            <version>${logback.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <version>RELEASE</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-validation-api</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-    </dependencies>
-
-    <artifactId>openecomp-heat-lib</artifactId>
-
-    <parent>
-        <artifactId>openecomp-sdc-lib</artifactId>
-        <groupId>org.openecomp.sdc</groupId>
-        <version>1.0-SNAPSHOT</version>
-    </parent>
-
-
-</project>
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-logging-lib/openecomp-sdc-logging-api/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-logging-lib/openecomp-sdc-logging-api/pom.xml.versionsBackup
deleted file mode 100644
index a2786b2..0000000
--- a/openecomp-be/lib/openecomp-logging-lib/openecomp-sdc-logging-api/pom.xml.versionsBackup
+++ /dev/null
@@ -1,57 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <dependencies>
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.aspectj</groupId>
-            <artifactId>aspectjrt</artifactId>
-            <version>1.8.9</version>
-        </dependency>
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-api</artifactId>
-        </dependency>
-    </dependencies>
-
-    <parent>
-        <groupId>org.openecomp.sdc</groupId>
-        <artifactId>openecomp-logging-lib</artifactId>
-        <version>1.0-SNAPSHOT</version>
-    </parent>
-
-
-    <artifactId>openecomp-sdc-logging-api</artifactId>
-    <name>openecomp-sdc-logging-api</name>
-    <version>1.0-SNAPSHOT</version>
-
-    <!--dependencies>
-        <dependency>
-            <groupId>org.springframework</groupId>
-            <artifactId>spring-core</artifactId>
-            <version>4.1.3.RELEASE</version>
-        </dependency>
-        <dependency>
-            <groupId>org.springframework</groupId>
-            <artifactId>spring-context</artifactId>
-            <version>4.1.3.RELEASE</version>
-        </dependency>
-        <dependency>
-            <groupId>org.springframework</groupId>
-            <artifactId>spring-beans</artifactId>
-            <version>4.1.3.RELEASE</version>
-        </dependency>
-        <dependency>
-            <groupId>org.springframework</groupId>
-            <artifactId>spring-beans</artifactId>
-            <version>4.1.3.RELEASE</version>
-        </dependency>
-    </dependencies-->
-
-    
-</project>
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-logging-lib/openecomp-sdc-logging-api/src/main/java/org/openecomp/sdc/logging/messages/AuditMessages.java b/openecomp-be/lib/openecomp-logging-lib/openecomp-sdc-logging-api/src/main/java/org/openecomp/sdc/logging/messages/AuditMessages.java
index f23a2c5..de39cff 100644
--- a/openecomp-be/lib/openecomp-logging-lib/openecomp-sdc-logging-api/src/main/java/org/openecomp/sdc/logging/messages/AuditMessages.java
+++ b/openecomp-be/lib/openecomp-logging-lib/openecomp-sdc-logging-api/src/main/java/org/openecomp/sdc/logging/messages/AuditMessages.java
@@ -16,14 +16,24 @@
   public static final String CHECK_IN_VSP = "Check in VSP. VSP Id: ";
   public static final String CHECK_OUT_VSP = "Check out VSP. VSP Id: ";
   public static final String SUBMIT_VSP = "Submit VSP. VSP Id: ";
+  public static final String SUBMIT_VSP_FAIL = "Submit VSP failed!. VSP Id: ";
+  public static final String SUBMIT_VSP_ERROR = "Submit VSP error: %s. VSP Id: %s";
 
   public static final String UPLOAD_HEAT = "Upload HEAT. VSP Id: ";
   public static final String UPLOAD_PROCESS_ARTIFACT = "Upload Process Artifact. VSP Id: ";
-  public static final String UPLOAD_MONITORING_FILE = "Upload Monitoring File of type %s " +
-      "" + ". VSP Id: %s, component id: %s";
-//    public static final String UPLOAD_ARTIFACT_MIB_TRAP = "Upload Artifact SNMP TRAP. VSP Id: ";
+  public static final String UPLOAD_MONITORING_FILE = "Upload Monitoring File of type %s "
+      +  ". VSP Id: %s, component id: %s";
 
   public static final String IMPORT_SUCCESS = "VSP import to VF success. VSP Id: ";
   public static final String IMPORT_FAIL = "VSP import to VF fail. VSP Id: ";
 
+  public static final String HEAT_VALIDATION_STARTED = "HEAT validation started. VSP Id: ";
+  public static final String HEAT_VALIDATION_COMPLETED = "HEAT validation completed. VSP Id: ";
+  public static final String HEAT_VALIDATION_ERROR = "HEAT validation error: %s. VSP Id: %s";
+  public static final String HEAT_TRANSLATION_STARTED = "HEAT translation started. VSP Id: ";
+  public static final String HEAT_TRANSLATION_COMPLETED = "HEAT translation completed. VSP Id: ";
+  public static final String ENRICHMENT_ERROR = "Enrichment error: %s. VSP Id: %s";
+  public static final String ENRICHMENT_COMPLETED = "Enrichment completed. VSP Id: ";
+  public static final String CREATE_PACKAGE = "Created package. VSP Id: ";
+
 }
diff --git a/openecomp-be/lib/openecomp-logging-lib/openecomp-sdc-logging-core/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-logging-lib/openecomp-sdc-logging-core/pom.xml.versionsBackup
deleted file mode 100644
index 374de71..0000000
--- a/openecomp-be/lib/openecomp-logging-lib/openecomp-sdc-logging-core/pom.xml.versionsBackup
+++ /dev/null
@@ -1,58 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <dependencies>
-        <!--dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-common-lib</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency-->
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-logging-api</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.springframework</groupId>
-            <artifactId>spring-context</artifactId>
-            <version>4.1.3.RELEASE</version>
-        </dependency>
-        <dependency>
-            <groupId>org.springframework</groupId>
-            <artifactId>spring-webmvc</artifactId>
-            <version>4.1.3.RELEASE</version>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>ch.qos.logback</groupId>
-            <artifactId>logback-classic</artifactId>
-            <version>${logback.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>javax.servlet</groupId>
-            <artifactId>servlet-api</artifactId>
-            <version>2.5</version>
-        </dependency>
-        <dependency>
-            <groupId>ch.qos.logback</groupId>
-            <artifactId>logback-classic</artifactId>
-            <version>1.1.7</version>
-        </dependency>
-
-    </dependencies>
-
-    <parent>
-        <groupId>org.openecomp.sdc</groupId>
-        <artifactId>openecomp-logging-lib</artifactId>
-        <version>1.0-SNAPSHOT</version>
-    </parent>
-
-    <groupId>org.openecomp.sdc</groupId>
-    <artifactId>openecomp-sdc-logging-core</artifactId>
-    <name>openecomp-sdc-logging-core</name>
-    <version>1.0-SNAPSHOT</version>
-
-    
-</project>
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-logging-lib/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-logging-lib/pom.xml.versionsBackup
deleted file mode 100644
index 7765713..0000000
--- a/openecomp-be/lib/openecomp-logging-lib/pom.xml.versionsBackup
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <parent>
-        <groupId>org.openecomp.sdc</groupId>
-        <artifactId>openecomp-sdc-lib</artifactId>
-        <version>1.0-SNAPSHOT</version>
-    </parent>
-
-    <groupId>org.openecomp.sdc</groupId>
-    <name>openecomp-logging-lib</name>
-    <artifactId>openecomp-logging-lib</artifactId>
-    <packaging>pom</packaging>
-
-    <modules>
-        <module>/openecomp-sdc-logging-api</module>
-        <module>/openecomp-sdc-logging-core</module>
-    </modules>
-
-    
-</project>
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-migration-lib/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-migration-lib/pom.xml.versionsBackup
deleted file mode 100644
index bca0cd3..0000000
--- a/openecomp-be/lib/openecomp-migration-lib/pom.xml.versionsBackup
+++ /dev/null
@@ -1,151 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <properties>
-
-        <groovy.version>2.4.7</groovy.version>
-        <janino.version>2.7.7</janino.version>
-
-    </properties>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-vendor-software-product-manager</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.codehaus.groovy</groupId>
-            <artifactId>groovy</artifactId>
-            <version>${groovy.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.openecomp.sdc.common</groupId>
-            <artifactId>openecomp-configuration-management-core</artifactId>
-            <version>1707.0.0-SNAPSHOT</version>
-            <scope>runtime</scope>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.slf4j</groupId>
-                    <artifactId>slf4j-log4j12</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-
-        <dependency>
-            <groupId>org.codehaus.janino</groupId>
-            <artifactId>janino</artifactId>
-            <version>${janino.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.codehaus.janino</groupId>
-            <artifactId>commons-compiler</artifactId>
-            <version>3.0.6</version>
-        </dependency>
-
-    </dependencies>
-
-    <parent>
-        <groupId>org.openecomp.sdc</groupId>
-        <artifactId>openecomp-sdc-lib</artifactId>
-        <version>1.0-SNAPSHOT</version>
-    </parent>
-
-
-    <artifactId>openecomp-migration-lib</artifactId>
-    <name>openecomp-migration-lib</name>
-    <version>1.0-SNAPSHOT</version>
-
-    <build>
-        <plugins>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-dependency-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>copy-dependencies</id>
-                        <phase>install</phase>
-                        <goals>
-                            <goal>copy-dependencies</goal>
-                        </goals>
-                        <configuration>
-                            <outputDirectory>${project.build.directory}/lib</outputDirectory>
-                            <overWriteReleases>false</overWriteReleases>
-                            <overWriteSnapshots>false</overWriteSnapshots>
-                            <overWriteIfNewer>true</overWriteIfNewer>
-                            <!--includeScope>runtime</includeScope-->
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-jar-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <phase>package</phase>
-                    </execution>
-                </executions>
-                <configuration>
-                    <archive>
-                        <manifest>
-                            <addClasspath>true</addClasspath>
-                            <classpathPrefix>lib/</classpathPrefix>
-                            <mainClass>org.openecomp.sdc.migration.ToscaNamespaceMigration</mainClass>
-                        </manifest>
-                        <manifestEntries>
-                            <Class-Path>lib/</Class-Path>
-                        </manifestEntries>
-                    </archive>
-                </configuration>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-antrun-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>ant-test</id>
-                        <phase>package</phase>
-                        <configuration>
-                            <tasks>
-                                <fixcrlf srcdir="../../tools/migration/" eol="unix"
-                                         includes="1702_to_1707.sh"/>
-                            </tasks>
-                        </configuration>
-                        <goals>
-                            <goal>run</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
-                <artifactId>maven-assembly-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>Generate assembly</id>
-                        <phase>install</phase>
-                        <goals>
-                            <goal>single</goal>
-                        </goals>
-                    </execution>
-                </executions>
-                <configuration>
-                    <descriptors>
-                        <descriptor>${basedir}/src/main/assembly/migration-lib-assembly.xml</descriptor>
-                    </descriptors>
-                    <finalName>openecomp-migration-lib</finalName>
-                </configuration>
-            </plugin>
-
-        </plugins>
-    </build>
-</project>
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-action-lib/openecomp-sdc-action-api/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-sdc-action-lib/openecomp-sdc-action-api/pom.xml.versionsBackup
deleted file mode 100644
index 5da2094..0000000
--- a/openecomp-be/lib/openecomp-sdc-action-lib/openecomp-sdc-action-api/pom.xml.versionsBackup
+++ /dev/null
@@ -1,47 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <parent>
-        <groupId>org.openecomp.sdc</groupId>
-        <artifactId>openecomp-sdc-action-lib</artifactId>
-        <version>1.0-SNAPSHOT</version>
-    </parent>
-
-    <groupId>org.openecomp.sdc</groupId>
-    <artifactId>openecomp-sdc-action-api</artifactId>
-    <version>1.0-SNAPSHOT</version>
-
-
-    <dependencies>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-core-lib</artifactId>
-            <type>pom</type>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-facade-core</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-nosqldb-core</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-versioning-api</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>com.fasterxml.jackson.core</groupId>
-            <artifactId>jackson-annotations</artifactId>
-            <version>2.7.4</version>
-        </dependency>
-    </dependencies>
-
-</project>
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-action-lib/openecomp-sdc-action-api/src/main/java/org/openecomp/sdc/healthcheck/dao/ActionDao.java b/openecomp-be/lib/openecomp-sdc-action-lib/openecomp-sdc-action-api/src/main/java/org/openecomp/sdc/healthcheck/dao/ActionDao.java
index ee5e883..86ae751 100644
--- a/openecomp-be/lib/openecomp-sdc-action-lib/openecomp-sdc-action-api/src/main/java/org/openecomp/sdc/healthcheck/dao/ActionDao.java
+++ b/openecomp-be/lib/openecomp-sdc-action-lib/openecomp-sdc-action-api/src/main/java/org/openecomp/sdc/healthcheck/dao/ActionDao.java
@@ -41,7 +41,7 @@
 
   public Action getActionsByActionUuId(String uniqueId) throws ActionException;
 
-  public List<OpenEcompComponent> getOpenEcompComponents() throws ActionException;
+  public List<OpenEcompComponent> getEcompComponents() throws ActionException;
 
   public List<Action> getActionsByActionInvariantUuId(String actionInvariantUuId)
       throws ActionException;
diff --git a/openecomp-be/lib/openecomp-sdc-action-lib/openecomp-sdc-action-core/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-sdc-action-lib/openecomp-sdc-action-core/pom.xml.versionsBackup
deleted file mode 100644
index 274bdb0..0000000
--- a/openecomp-be/lib/openecomp-sdc-action-lib/openecomp-sdc-action-core/pom.xml.versionsBackup
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <groupId>org.openecomp.sdc</groupId>
-    <artifactId>openecomp-sdc-action-core</artifactId>
-    <version>1.0-SNAPSHOT</version>
-
-    <parent>
-        <groupId>org.openecomp.sdc</groupId>
-        <artifactId>openecomp-sdc-action-lib</artifactId>
-        <version>1.0-SNAPSHOT</version>
-    </parent>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-action-api</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-versioning-api</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-    </dependencies>
-
-</project>
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-action-lib/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-sdc-action-lib/pom.xml.versionsBackup
deleted file mode 100644
index 447437f..0000000
--- a/openecomp-be/lib/openecomp-sdc-action-lib/pom.xml.versionsBackup
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <groupId>org.openecomp.sdc</groupId>
-    <artifactId>openecomp-sdc-action-lib</artifactId>
-    <packaging>pom</packaging>
-
-    <parent>
-        <groupId>org.openecomp.sdc</groupId>
-        <artifactId>openecomp-sdc-lib</artifactId>
-        <version>1.0-SNAPSHOT</version>
-    </parent>
-
-
-    <modules>
-        <module>openecomp-sdc-action-api</module>
-        <module>openecomp-sdc-action-core</module>
-    </modules>
-
-    
-</project>
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-datatypes-lib/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-sdc-datatypes-lib/pom.xml.versionsBackup
deleted file mode 100644
index 9e29da0..0000000
--- a/openecomp-be/lib/openecomp-sdc-datatypes-lib/pom.xml.versionsBackup
+++ /dev/null
@@ -1,39 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <name>openecomp-sdc-datatypes-lib</name>
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.commons</groupId>
-            <artifactId>commons-collections4</artifactId>
-            <version>4.1</version>
-        </dependency>
-        <dependency>
-            <groupId>org.codehaus.jackson</groupId>
-            <artifactId>jackson-mapper-asl</artifactId>
-            <version>1.9.13</version>
-        </dependency>
-        <dependency>
-            <groupId>io.swagger</groupId>
-            <artifactId>swagger-annotations</artifactId>
-            <version>1.5.3</version>
-        </dependency>
-        <dependency>
-            <groupId>commons-lang</groupId>
-            <artifactId>commons-lang</artifactId>
-            <version>2.5</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc.common</groupId>
-            <artifactId>openecomp-configuration-management-api</artifactId>
-            <version>1707.0.0-SNAPSHOT</version>
-        </dependency>
-    </dependencies>
-    <artifactId>openecomp-sdc-datatypes-lib</artifactId>
-    <parent>
-        <artifactId>openecomp-sdc-lib</artifactId>
-        <groupId>org.openecomp.sdc</groupId>
-        <version>1.0-SNAPSHOT</version>
-    </parent>
-</project>
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-api/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-api/pom.xml.versionsBackup
deleted file mode 100644
index 493e425..0000000
--- a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-api/pom.xml.versionsBackup
+++ /dev/null
@@ -1,45 +0,0 @@
-<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xmlns="http://maven.apache.org/POM/4.0.0"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <name>openecomp-sdc-enrichment-api</name>
-    <artifactId>openecomp-sdc-enrichment-api</artifactId>
-
-
-    <parent>
-        <groupId>org.openecomp.sdc</groupId>
-        <artifactId>openecomp-sdc-lib</artifactId>
-        <version>1.0-SNAPSHOT</version>
-        <relativePath>../..</relativePath>
-    </parent>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-facade-core</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>io.swagger</groupId>
-            <artifactId>swagger-annotations</artifactId>
-            <version>1.5.3</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-datatypes-lib</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>ch.qos.logback</groupId>
-            <artifactId>logback-classic</artifactId>
-            <version>${logback.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-versioning-api</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-    </dependencies>
-
-</project>
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-core/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-core/pom.xml.versionsBackup
deleted file mode 100644
index d8f63f1..0000000
--- a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-core/pom.xml.versionsBackup
+++ /dev/null
@@ -1,94 +0,0 @@
-<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xmlns="http://maven.apache.org/POM/4.0.0"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <name>openecomp-sdc-enrichment-core</name>
-    <artifactId>openecomp-sdc-enrichment-core</artifactId>
-
-
-    <parent>
-        <groupId>org.openecomp.sdc</groupId>
-        <artifactId>openecomp-sdc-lib</artifactId>
-        <version>1.0-SNAPSHOT</version>
-        <relativePath>../..</relativePath>
-    </parent>
-
-    <dependencies>
-        <dependency>
-            <groupId>ch.qos.logback</groupId>
-            <artifactId>logback-classic</artifactId>
-            <version>${logback.version}</version>
-
-        </dependency>
-        <dependency>
-            <groupId>org.testng</groupId>
-            <artifactId>testng</artifactId>
-            <scope>test</scope>
-            <version>6.8.5</version>
-            <exclusions>
-                <exclusion>
-                    <artifactId>snakeyaml</artifactId>
-                    <groupId>org.yaml</groupId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <version>RELEASE</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-utilities-lib</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-enrichment-api</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-enrichment-impl</artifactId>
-            <version>${project.version}</version>
-            <!--scope>runtime</scope-->
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-datatypes-lib</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.mockito</groupId>
-            <artifactId>mockito-all</artifactId>
-            <scope>test</scope>
-            <version>1.10.19</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-model-impl</artifactId>
-            <version>1.0-SNAPSHOT</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-tosca-lib</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-    </dependencies>
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-surefire-plugin</artifactId>
-                <version>2.19.1</version>
-                <configuration>
-                    <useSystemClassLoader>false</useSystemClassLoader>
-                    <redirectTestOutputToFile>true</redirectTestOutputToFile>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
-</project>
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/pom.xml.versionsBackup
deleted file mode 100644
index 65e84d8..0000000
--- a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/pom.xml.versionsBackup
+++ /dev/null
@@ -1,127 +0,0 @@
-<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xmlns="http://maven.apache.org/POM/4.0.0"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <name>openecomp-sdc-enrichment-impl</name>
-    <artifactId>openecomp-sdc-enrichment-impl</artifactId>
-
-
-    <parent>
-        <groupId>org.openecomp.sdc</groupId>
-        <artifactId>openecomp-sdc-lib</artifactId>
-        <version>1.0-SNAPSHOT</version>
-        <relativePath>../..</relativePath>
-    </parent>
-
-    <dependencies>
-        <dependency>
-            <groupId>ch.qos.logback</groupId>
-            <artifactId>logback-classic</artifactId>
-            <version>${logback.version}</version>
-
-        </dependency>
-
-        <dependency>
-            <groupId>org.testng</groupId>
-            <artifactId>testng</artifactId>
-            <scope>test</scope>
-            <version>6.8.5</version>
-            <exclusions>
-                <exclusion>
-                    <artifactId>snakeyaml</artifactId>
-                    <groupId>org.yaml</groupId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <version>RELEASE</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-utilities-lib</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-enrichment-api</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-model-core</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-common-lib</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-vendor-software-product-core</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.mockito</groupId>
-            <artifactId>mockito-all</artifactId>
-            <scope>test</scope>
-            <version>1.10.19</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-heat-lib</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-tosca-lib</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-translator-core</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-config-lib</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-vendor-software-product-api</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <scope>runtime</scope>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-vendor-software-product-core</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <scope>test</scope>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-model-impl</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-
-    </dependencies>
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-surefire-plugin</artifactId>
-                <version>2.19.1</version>
-                <configuration>
-                    <useSystemClassLoader>false</useSystemClassLoader>
-					<redirectTestOutputToFile>true</redirectTestOutputToFile>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
-
-</project>
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-sdc-enrichment-lib/pom.xml.versionsBackup
deleted file mode 100644
index b6e0173..0000000
--- a/openecomp-be/lib/openecomp-sdc-enrichment-lib/pom.xml.versionsBackup
+++ /dev/null
@@ -1,44 +0,0 @@
-<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xmlns="http://maven.apache.org/POM/4.0.0"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <name>openecomp-sdc-enrichment-lib</name>
-    <artifactId>openecomp-sdc-enrichment-lib</artifactId>
-
-    <packaging>pom</packaging>
-    <parent>
-        <artifactId>openecomp-sdc-lib</artifactId>
-        <groupId>org.openecomp.sdc</groupId>
-        <version>1.0-SNAPSHOT</version>
-    </parent>
-
-    <modules>
-        <module>openecomp-sdc-enrichment-api</module>
-        <module>openecomp-sdc-enrichment-core</module>
-        <module>openecomp-sdc-enrichment-impl</module>
-    </modules>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-enrichment-api</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-enrichment-core</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-vendor-software-product-core</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <!--dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-validation-impl</artifactId>
-            <version>${project.version}</version>
-        </dependency-->
-    </dependencies>
-</project>
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-model-lib/openecomp-sdc-model-api/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-sdc-model-lib/openecomp-sdc-model-api/pom.xml.versionsBackup
deleted file mode 100644
index eba0f20..0000000
--- a/openecomp-be/lib/openecomp-sdc-model-lib/openecomp-sdc-model-api/pom.xml.versionsBackup
+++ /dev/null
@@ -1,51 +0,0 @@
-<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xmlns="http://maven.apache.org/POM/4.0.0"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <name>openecomp-sdc-model-api</name>
-    <artifactId>openecomp-sdc-model-api</artifactId>
-
-
-    <parent>
-        <groupId>org.openecomp.sdc</groupId>
-        <artifactId>openecomp-sdc-lib</artifactId>
-        <version>1.0-SNAPSHOT</version>
-        <relativePath>../..</relativePath>
-    </parent>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-facade-core</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-validation-api</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-versioning-core</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>io.swagger</groupId>
-            <artifactId>swagger-annotations</artifactId>
-            <version>1.5.3</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-heat-lib</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-tosca-lib</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-
-    </dependencies>
-
-</project>
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-model-lib/openecomp-sdc-model-core/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-sdc-model-lib/openecomp-sdc-model-core/pom.xml.versionsBackup
deleted file mode 100644
index d624371..0000000
--- a/openecomp-be/lib/openecomp-sdc-model-lib/openecomp-sdc-model-core/pom.xml.versionsBackup
+++ /dev/null
@@ -1,56 +0,0 @@
-<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xmlns="http://maven.apache.org/POM/4.0.0"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <name>openecomp-sdc-model-core</name>
-    <artifactId>openecomp-sdc-model-core</artifactId>
-
-
-    <parent>
-        <groupId>org.openecomp.sdc</groupId>
-        <artifactId>openecomp-sdc-lib</artifactId>
-        <version>1.0-SNAPSHOT</version>
-        <relativePath>../..</relativePath>
-    </parent>
-
-    <dependencies>
-        <dependency>
-            <groupId>ch.qos.logback</groupId>
-            <artifactId>logback-classic</artifactId>
-            <version>${logback.version}</version>
-
-        </dependency>
-
-
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-utilities-lib</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-model-api</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-versioning-core</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-datatypes-lib</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.mockito</groupId>
-            <artifactId>mockito-all</artifactId>
-            <scope>test</scope>
-            <version>1.10.19</version>
-        </dependency>
-
-
-    </dependencies>
-</project>
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-model-lib/openecomp-sdc-model-impl/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-sdc-model-lib/openecomp-sdc-model-impl/pom.xml.versionsBackup
deleted file mode 100644
index b8db689..0000000
--- a/openecomp-be/lib/openecomp-sdc-model-lib/openecomp-sdc-model-impl/pom.xml.versionsBackup
+++ /dev/null
@@ -1,49 +0,0 @@
-<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xmlns="http://maven.apache.org/POM/4.0.0"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <name>openecomp-sdc-model-impl</name>
-    <artifactId>openecomp-sdc-model-impl</artifactId>
-
-
-    <parent>
-        <groupId>org.openecomp.sdc</groupId>
-        <artifactId>openecomp-sdc-lib</artifactId>
-        <version>1.0-SNAPSHOT</version>
-        <relativePath>../..</relativePath>
-    </parent>
-
-    <dependencies>
-        <dependency>
-            <groupId>ch.qos.logback</groupId>
-            <artifactId>logback-classic</artifactId>
-            <version>${logback.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-utilities-lib</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-model-core</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-
-
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-datatypes-lib</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.mockito</groupId>
-            <artifactId>mockito-all</artifactId>
-            <scope>test</scope>
-            <version>1.10.19</version>
-        </dependency>
-
-
-    </dependencies>
-</project>
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-model-lib/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-sdc-model-lib/pom.xml.versionsBackup
deleted file mode 100644
index d49cbd7..0000000
--- a/openecomp-be/lib/openecomp-sdc-model-lib/pom.xml.versionsBackup
+++ /dev/null
@@ -1,44 +0,0 @@
-<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xmlns="http://maven.apache.org/POM/4.0.0"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <name>openecomp-sdc-model-lib</name>
-    <artifactId>openecomp-sdc-model-lib</artifactId>
-
-    <packaging>pom</packaging>
-    <parent>
-        <artifactId>openecomp-sdc-lib</artifactId>
-        <groupId>org.openecomp.sdc</groupId>
-        <version>1.0-SNAPSHOT</version>
-    </parent>
-
-    <modules>
-        <module>openecomp-sdc-model-api</module>
-        <module>openecomp-sdc-model-core</module>
-        <module>openecomp-sdc-model-impl</module>
-    </modules>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-model-api</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-model-core</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-model-impl</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <!--dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-common-lib</artifactId>
-            <version>${project.version}</version>
-        </dependency-->
-    </dependencies>
-</project>
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-api/pom.xml b/openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-api/pom.xml
index 047fe7f..51399fb 100644
--- a/openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-api/pom.xml
+++ b/openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-api/pom.xml
@@ -65,4 +65,4 @@
         </dependency>
     </dependencies>
 
-</project>
+</project>
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-api/src/main/java/org/openecomp/sdc/generator/datatypes/tosca/VspModelInfo.java b/openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-api/src/main/java/org/openecomp/sdc/generator/datatypes/tosca/VspModelInfo.java
index 1fb1030..025db1c 100644
--- a/openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-api/src/main/java/org/openecomp/sdc/generator/datatypes/tosca/VspModelInfo.java
+++ b/openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-api/src/main/java/org/openecomp/sdc/generator/datatypes/tosca/VspModelInfo.java
@@ -55,4 +55,79 @@
   public void setNics(Map<String, List<Nic>> nics) {
     this.nics = nics;
   }
+
+  @Override
+  public int hashCode() {
+    int result = releaseVendor != null ? releaseVendor.hashCode() : 0;
+    result = 31 * result + (components != null ? components.hashCode() : 0);
+    result = 31 * result + (allowedFlavors != null ? allowedFlavors.hashCode() : 0);
+    result = 31 * result + (multiFlavorVfcImages != null ? multiFlavorVfcImages.hashCode() : 0);
+    result = 31 * result + (nics != null ? nics.hashCode() : 0);
+    return result;
+  }
+
+  @Override
+  public String toString() {
+    return "VspModelInfo{"
+       + "releaseVendor='" + releaseVendor + '\''
+       + ", components=" + components
+       + ", allowedFlavors=" + allowedFlavors
+       + ", multiFlavorVfcImages=" + multiFlavorVfcImages
+       + ", nics=" + nics
+       + '}';
+  }
+
+  @Override
+  public boolean equals(Object obj) {
+    if (this == obj) {
+      return true;
+    }
+    if (getClass() != obj.getClass()) {
+      return false;
+    }
+    VspModelInfo other = (VspModelInfo) obj;
+    if (this.releaseVendor == null) {
+      if (other.releaseVendor != null) {
+        return false;
+      }
+    } else if (!releaseVendor.equals(other.releaseVendor)) {
+      return false;
+    }
+    if (this.components == null) {
+      if (other.components != null) {
+        return false;
+      }
+    } else if (!components.equals(other.components)) {
+      return false;
+    }
+    if (this.allowedFlavors == null) {
+      if (other.allowedFlavors != null) {
+        return false;
+      }
+    } else if (!allowedFlavors.equals(other.allowedFlavors)) {
+      return false;
+    }
+    if (this.multiFlavorVfcImages == null) {
+      if (other.multiFlavorVfcImages != null) {
+        return false;
+      }
+    } else if (!multiFlavorVfcImages.equals(other.multiFlavorVfcImages)) {
+      return false;
+    }
+    if (this.multiFlavorVfcImages == null) {
+      if (other.multiFlavorVfcImages != null) {
+        return false;
+      }
+    } else if (!multiFlavorVfcImages.equals(other.multiFlavorVfcImages)) {
+      return false;
+    }
+    if (this.nics == null) {
+      if (other.nics != null) {
+        return false;
+      }
+    } else if (!nics.equals(other.nics)) {
+      return false;
+    }
+    return true;
+  }
 }
diff --git a/openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-api/src/main/java/org/openecomp/sdc/generator/util/GeneratorConstants.java b/openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-api/src/main/java/org/openecomp/sdc/generator/util/GeneratorConstants.java
index b24a85d..5464627 100644
--- a/openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-api/src/main/java/org/openecomp/sdc/generator/util/GeneratorConstants.java
+++ b/openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-api/src/main/java/org/openecomp/sdc/generator/util/GeneratorConstants.java
@@ -5,9 +5,10 @@
   public static final String IMAGES_PROPERTY = "images";
   public static final String RELEASE_VENDOR = "releaseVendor";
   public static final String VNF_CONFIG_NODE_TEMPLATE_ID_SUFFIX = "_VNF_Configuration";
-  public static final String VFC_NODE_TEMPLATE_ID_SUFFIX = "_VFC";
   public static final String VNF_NODE_TEMPLATE_ID_SUFFIX = "_VNF";
-  public static final String PORT_NODE_TEMPLATE_ID_SUFFIX = "_wan_port";
+  public static final String PORT_TYPE_INTERNAL_NODE_TEMPLATE_SUFFIX = "_lan";
+  public static final String PORT_TYPE_EXTERNAL_NODE_TEMPLATE_SUFFIX = "_wan";
+  public static final String PORT_NODE_TEMPLATE_ID_SUFFIX = "_port";
 
   public static final String TOSCA_SERVICE_TEMPLATE_FILE_NAME_SUFFIX = "ServiceTemplate.yaml";
 
diff --git a/openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-core/src/main/java/org/openecomp/sdc/generator/core/services/ManualVspToscaGenerationService.java b/openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-core/src/main/java/org/openecomp/sdc/generator/core/services/ManualVspToscaGenerationService.java
index 6d488c0..6ec7bfc 100644
--- a/openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-core/src/main/java/org/openecomp/sdc/generator/core/services/ManualVspToscaGenerationService.java
+++ b/openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-core/src/main/java/org/openecomp/sdc/generator/core/services/ManualVspToscaGenerationService.java
@@ -9,9 +9,10 @@
 import static org.openecomp.sdc.generator.util.GeneratorConstants.NUM_CPUS;
 import static org.openecomp.sdc.generator.util.GeneratorConstants.NUM_CPUS_PROP_DESC_PREFIX;
 import static org.openecomp.sdc.generator.util.GeneratorConstants.PORT_NODE_TEMPLATE_ID_SUFFIX;
+import static org.openecomp.sdc.generator.util.GeneratorConstants.PORT_TYPE_EXTERNAL_NODE_TEMPLATE_SUFFIX;
+import static org.openecomp.sdc.generator.util.GeneratorConstants.PORT_TYPE_INTERNAL_NODE_TEMPLATE_SUFFIX;
 import static org.openecomp.sdc.generator.util.GeneratorConstants.RELEASE_VENDOR;
 import static org.openecomp.sdc.generator.util.GeneratorConstants.TOSCA_SERVICE_TEMPLATE_FILE_NAME_SUFFIX;
-import static org.openecomp.sdc.generator.util.GeneratorConstants.VFC_NODE_TEMPLATE_ID_SUFFIX;
 import static org.openecomp.sdc.generator.util.GeneratorConstants.VNF_CONFIG_NODE_TEMPLATE_ID_SUFFIX;
 import static org.openecomp.sdc.generator.util.GeneratorConstants.VNF_NODE_TEMPLATE_ID_SUFFIX;
 
@@ -36,6 +37,7 @@
 import org.openecomp.sdc.tosca.services.impl.ToscaAnalyzerServiceImpl;
 import org.openecomp.sdc.translator.services.heattotosca.Constants;
 import org.openecomp.sdc.translator.services.heattotosca.globaltypes.GlobalTypesGenerator;
+import org.openecomp.sdc.vendorsoftwareproduct.types.composition.NetworkType;
 import org.openecomp.sdc.vendorsoftwareproduct.types.composition.Nic;
 
 import java.util.ArrayList;
@@ -118,8 +120,7 @@
       // May be need to revisited for supporting multiple components
       String componentId = components.entrySet().iterator().next().getKey();
       createVnfConfigurationNodeTemplate(mainServiceTemplate, vspModelInfo);
-      createComponentNodeTemplate(mainServiceTemplate, vspModelInfo, componentId);
-      createVnfNodeTemplate(mainServiceTemplate, vspModelInfo);
+      createVnfNodeTemplate(mainServiceTemplate, vspModelInfo, componentId);
     }
     return mainServiceTemplate;
   }
@@ -141,42 +142,16 @@
     }
   }
 
-  private void createComponentNodeTemplate(ServiceTemplate mainServiceTemplate,
-                                                  VspModelInfo vspModelInfo,
-                                                  String componentId) {
-    Optional<String> componentName = getComponentNameFromVspModel(vspModelInfo);
-    if (componentName.isPresent()) {
-      NodeTemplate vfcNodeTemplate = new NodeTemplate();
-      vfcNodeTemplate.setType(ToscaNodeType.MULTIFLAVOR_VFC_NODE_TYPE);
-      Map<String, Object> properties = new LinkedHashMap<>();
-      if (MapUtils.isNotEmpty(vspModelInfo.getMultiFlavorVfcImages())) {
-        List<MultiFlavorVfcImage> componentImages =
-            vspModelInfo.getMultiFlavorVfcImages().get(componentId);
-        Map<String, MultiFlavorVfcImage> vfcImages = new HashMap<>();
-        for (MultiFlavorVfcImage image : componentImages) {
-          vfcImages.put(image.getSoftware_version(), image);
-        }
-        properties.put(IMAGES_PROPERTY, vfcImages);
-        vfcNodeTemplate.setProperties(properties);
-      }
-      String nodeTemplateId = componentName.get() + VFC_NODE_TEMPLATE_ID_SUFFIX;
-      DataModelUtil.addNodeTemplate(mainServiceTemplate, nodeTemplateId,
-          vfcNodeTemplate);
-    }
-  }
-
   private void createVnfNodeTemplate(ServiceTemplate mainServiceTemplate,
-                                      VspModelInfo vspModelInfo) {
+                                     VspModelInfo vspModelInfo, String componentId) {
     Optional<String> componentName = getComponentNameFromVspModel(vspModelInfo);
     if (componentName.isPresent()) {
       NodeTemplate vnfNodeTemplate = new NodeTemplate();
-      String vnfNodeTemplateType =
-          ToscaNodeType.MULTIDEPLOYMENTFLAVOR_NODE_TYPE + "." + componentName.get();
-      vnfNodeTemplate.setType(vnfNodeTemplateType);
+      vnfNodeTemplate.setType(ToscaNodeType.MULTIDEPLOYMENTFLAVOR_NODE_TYPE);
       List<String> directiveList = new ArrayList<>();
       directiveList.add(ToscaConstants.NODE_TEMPLATE_DIRECTIVE_SUBSTITUTABLE);
       vnfNodeTemplate.setDirectives(directiveList);
-      vnfNodeTemplate.setProperties(new LinkedHashMap<>());
+      vnfNodeTemplate.setProperties(getVnfNodeTemplateProperties(vspModelInfo, componentId));
       DataModelUtil
           .addSubstitutionFilteringProperty(getSubstitutionServiceTemplateFileName(componentName
                   .get()), vnfNodeTemplate, 1);
@@ -186,10 +161,28 @@
       String nodeTemplateId = componentName.get() + VNF_NODE_TEMPLATE_ID_SUFFIX;
       DataModelUtil.addNodeTemplate(mainServiceTemplate, nodeTemplateId,
           vnfNodeTemplate);
-      abstractSubstitutionIdTypes.put(componentName.get(), vnfNodeTemplateType);
+      abstractSubstitutionIdTypes.put(componentName.get(), ToscaNodeType
+          .MULTIDEPLOYMENTFLAVOR_NODE_TYPE);
     }
   }
 
+  private Map<String, Object> getVnfNodeTemplateProperties(VspModelInfo vspModelInfo,
+                                                           String componentId) {
+    Map<String, Object> properties = new LinkedHashMap<>();
+    if (MapUtils.isNotEmpty(vspModelInfo.getMultiFlavorVfcImages())) {
+      List<MultiFlavorVfcImage> componentImages =
+          vspModelInfo.getMultiFlavorVfcImages().get(componentId);
+      if (Objects.nonNull(componentImages)) {
+        Map<String, MultiFlavorVfcImage> vfcImages = new HashMap<>();
+        componentImages.stream()
+            .forEach(multiFlavorVfcImage ->
+                vfcImages.put(multiFlavorVfcImage.getSoftware_version(), multiFlavorVfcImage));
+        properties.put(IMAGES_PROPERTY, vfcImages);
+      }
+    }
+    return properties;
+  }
+
   private String getSubstitutionServiceTemplateFileName(String componentName) {
     return componentName + TOSCA_SERVICE_TEMPLATE_FILE_NAME_SUFFIX;
   }
@@ -276,7 +269,7 @@
             nicNodeTemplate.setType(ToscaNodeType.NETWORK_PORT);
             DataModelUtil.addBindingReqFromPortToCompute(componentNodeTemplateId, nicNodeTemplate);
             DataModelUtil.addNodeTemplate(substitutionServiceTemplate,
-                getNicNodeTemplateId(nic.getName()), nicNodeTemplate);
+                getNicNodeTemplateId(nic.getName(), nic.getNetworkType()), nicNodeTemplate);
           }
         }
       }
@@ -288,9 +281,14 @@
     return componentName;
   }
 
-  private String getNicNodeTemplateId(String nicName) {
+  private String getNicNodeTemplateId(String nicName, NetworkType nicNetworkType) {
     StringBuilder builder = new StringBuilder();
     builder.append(nicName);
+    if (nicNetworkType == NetworkType.External) {
+      builder.append(PORT_TYPE_EXTERNAL_NODE_TEMPLATE_SUFFIX);
+    } else if (nicNetworkType == NetworkType.Internal) {
+      builder.append(PORT_TYPE_INTERNAL_NODE_TEMPLATE_SUFFIX);
+    }
     builder.append(PORT_NODE_TEMPLATE_ID_SUFFIX);
     return builder.toString();
   }
@@ -337,7 +335,6 @@
         createGlobalSubstitutionNodeType(substitutionServiceTemplate, componentName);
     DataModelUtil.addNodeType(globalSubstitutionServiceTemplate, substitutionNodeTypeId,
         substitutionNodeType);
-
     Map<String, Map<String, List<String>>> substitutionMapping =
         GeneratorUtils.getSubstitutionNodeTypeExposedConnectionPoints(substitutionNodeType,
             substitutionServiceTemplate, toscaServiceModel);
@@ -379,7 +376,7 @@
                                                 String componentName) {
     NodeType substitutionNodeType = new ToscaAnalyzerServiceImpl()
         .createInitSubstitutionNodeType(substitutionServiceTemplate,
-            ToscaNodeType.VFC_ABSTRACT_SUBSTITUTE);
+            ToscaNodeType.MULTIFLAVOR_VFC_NODE_TYPE);
     substitutionNodeType.setProperties(
         getManualVspSubstitutionNodeTypeProperties(substitutionNodeType, componentName));
     return substitutionNodeType;
diff --git a/openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-core/src/main/java/org/openecomp/sdc/generator/core/utils/GeneratorUtils.java b/openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-core/src/main/java/org/openecomp/sdc/generator/core/utils/GeneratorUtils.java
index c13997b..59b06ba 100644
--- a/openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-core/src/main/java/org/openecomp/sdc/generator/core/utils/GeneratorUtils.java
+++ b/openecomp-be/lib/openecomp-sdc-tosca-generator-lib/openecomp-sdc-tosca-generator-core/src/main/java/org/openecomp/sdc/generator/core/utils/GeneratorUtils.java
@@ -163,8 +163,8 @@
     } catch (Exception ex) {
       MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_API,
           LoggerTragetServiceName.GENERATE_MANUAL_VSP_TOSCA, ErrorLevel.INFO.name(),
-          LoggerErrorCode.DATA_ERROR.getErrorCode(), "Error occured in get node type exposed "
-              + "points");
+          LoggerErrorCode.DATA_ERROR.getErrorCode(),
+          "Error occured in get node type exposed points : " + ex.getMessage());
       return null;
     }
     return substitutionMapping;
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/pom.xml.versionsBackup
deleted file mode 100644
index e44d37f..0000000
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/att-sdc-translator-impl/pom.xml.versionsBackup
+++ /dev/null
@@ -1,70 +0,0 @@
-<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xmlns="http://maven.apache.org/POM/4.0.0"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <name>att-sdc-translator-impl</name>
-    <artifactId>att-sdc-translator-impl</artifactId>
-
-
-    <parent>
-        <groupId>org.openecomp.sdc</groupId>
-        <artifactId>openecomp-sdc-lib</artifactId>
-        <version>1.0-SNAPSHOT</version>
-        <relativePath>../..</relativePath>
-    </parent>
-
-    <dependencies>
-        <dependency>
-            <groupId>ch.qos.logback</groupId>
-            <artifactId>logback-classic</artifactId>
-            <version>1.1.2</version>
-        </dependency>
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <version>RELEASE</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-translator-api</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-heat-lib</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-tosca-lib</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-
-
-        <!-- need to be changed to sdk -->
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-translator-core</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <!--dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-translator-core</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency-->
-    </dependencies>
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-surefire-plugin</artifactId>
-                <version>2.19.1</version>
-                <configuration>
-                    <useSystemClassLoader>false</useSystemClassLoader>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
-</project>
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-api/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-api/pom.xml.versionsBackup
deleted file mode 100644
index d46dd3f..0000000
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-api/pom.xml.versionsBackup
+++ /dev/null
@@ -1,68 +0,0 @@
-<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xmlns="http://maven.apache.org/POM/4.0.0"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <name>openecomp-sdc-translator-api</name>
-    <artifactId>openecomp-sdc-translator-api</artifactId>
-
-
-    <parent>
-        <groupId>org.openecomp.sdc</groupId>
-        <artifactId>openecomp-sdc-lib</artifactId>
-        <version>1.0-SNAPSHOT</version>
-        <relativePath>../..</relativePath>
-    </parent>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-facade-core</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-validation-api</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-validation-core</artifactId>
-            <version>${project.version}</version>
-            <scope>runtime</scope>
-        </dependency>
-        <dependency>
-            <groupId>io.swagger</groupId>
-            <artifactId>swagger-annotations</artifactId>
-            <version>1.5.3</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-heat-lib</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-tosca-lib</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc.common</groupId>
-            <artifactId>openecomp-configuration-management-core</artifactId>
-            <version>1707.0.0-SNAPSHOT</version>
-            <scope>runtime</scope>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.slf4j</groupId>
-                    <artifactId>slf4j-log4j12</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc.common</groupId>
-            <artifactId>openecomp-configuration-management-api</artifactId>
-            <version>1707.0.0-SNAPSHOT</version>
-        </dependency>
-    </dependencies>
-
-</project>
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/pom.xml.versionsBackup
deleted file mode 100644
index aea451e..0000000
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/pom.xml.versionsBackup
+++ /dev/null
@@ -1,75 +0,0 @@
-<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xmlns="http://maven.apache.org/POM/4.0.0"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <name>openecomp-sdc-translator-core</name>
-    <artifactId>openecomp-sdc-translator-core</artifactId>
-
-
-    <parent>
-        <groupId>org.openecomp.sdc</groupId>
-        <artifactId>openecomp-sdc-lib</artifactId>
-        <version>1.0-SNAPSHOT</version>
-        <relativePath>../..</relativePath>
-    </parent>
-
-    <dependencies>
-        <dependency>
-            <groupId>ch.qos.logback</groupId>
-            <artifactId>logback-classic</artifactId>
-            <version>${logback.version}</version>
-
-        </dependency>
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <version>RELEASE</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-utilities-lib</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-translator-api</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-datatypes-lib</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-validation-api</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>att-sdc-validation-impl</artifactId>
-            <version>1.0-SNAPSHOT</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-heat-lib</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-    </dependencies>
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-surefire-plugin</artifactId>
-                <version>2.19.1</version>
-                <configuration>
-                    <useSystemClassLoader>false</useSystemClassLoader>
-                    <redirectTestOutputToFile>true</redirectTestOutputToFile>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
-</project>
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-impl/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-impl/pom.xml.versionsBackup
deleted file mode 100644
index 95c4530..0000000
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-impl/pom.xml.versionsBackup
+++ /dev/null
@@ -1,68 +0,0 @@
-<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xmlns="http://maven.apache.org/POM/4.0.0"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <name>openecomp-sdc-translator-impl</name>
-    <artifactId>openecomp-sdc-translator-impl</artifactId>
-
-
-    <parent>
-        <groupId>org.openecomp.sdc</groupId>
-        <artifactId>openecomp-sdc-lib</artifactId>
-        <version>1.0-SNAPSHOT</version>
-        <relativePath>../..</relativePath>
-    </parent>
-
-    <dependencies>
-        <dependency>
-            <groupId>ch.qos.logback</groupId>
-            <artifactId>logback-classic</artifactId>
-            <version>1.1.2</version>
-        </dependency>
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <version>RELEASE</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-translator-api</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-heat-lib</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-tosca-lib</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-
-
-        <!-- need to be changed to sdk -->
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-translator-core</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-    </dependencies>
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-surefire-plugin</artifactId>
-                <version>2.19.1</version>
-                <configuration>
-                    <useSystemClassLoader>false</useSystemClassLoader>
-                    <systemPropertyVariables>
-                        <config.location>${project.basedir}/configuration</config.location>
-                    </systemPropertyVariables>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
-</project>
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-sdk/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-sdk/pom.xml.versionsBackup
deleted file mode 100644
index 2cb266a..0000000
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-sdk/pom.xml.versionsBackup
+++ /dev/null
@@ -1,45 +0,0 @@
-<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xmlns="http://maven.apache.org/POM/4.0.0"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <name>openecomp-sdc-translator-sdk</name>
-    <artifactId>openecomp-sdc-translator-sdk</artifactId>
-
-
-    <parent>
-        <groupId>org.openecomp.sdc</groupId>
-        <artifactId>openecomp-sdc-lib</artifactId>
-        <version>1.0-SNAPSHOT</version>
-        <relativePath>../..</relativePath>
-    </parent>
-
-    <dependencies>
-        <dependency>
-            <groupId>ch.qos.logback</groupId>
-            <artifactId>logback-classic</artifactId>
-            <version>1.1.2</version>
-        </dependency>
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <version>RELEASE</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-translator-api</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-heat-lib</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-tosca-lib</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-    </dependencies>
-</project>
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-sdc-translator-lib/pom.xml.versionsBackup
deleted file mode 100644
index 9d7224a..0000000
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/pom.xml.versionsBackup
+++ /dev/null
@@ -1,26 +0,0 @@
-<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xmlns="http://maven.apache.org/POM/4.0.0"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <name>openecomp-sdc-translator-lib</name>
-    <artifactId>openecomp-sdc-translator-lib</artifactId>
-
-    <packaging>pom</packaging>
-    <parent>
-        <artifactId>openecomp-sdc-lib</artifactId>
-        <groupId>org.openecomp.sdc</groupId>
-        <version>1.0-SNAPSHOT</version>
-    </parent>
-
-    <modules>
-        <module>openecomp-sdc-translator-api</module>
-        <module>openecomp-sdc-translator-sdk</module>
-        <module>openecomp-sdc-translator-core</module>
-        <module>openecomp-sdc-translator-impl</module>
-        <module>att-sdc-translator-impl</module>
-    </modules>
-
-    <dependencies>
-    </dependencies>
-</project>
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-validation-lib/att-sdc-validation-impl/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-sdc-validation-lib/att-sdc-validation-impl/pom.xml.versionsBackup
deleted file mode 100644
index b53f415..0000000
--- a/openecomp-be/lib/openecomp-sdc-validation-lib/att-sdc-validation-impl/pom.xml.versionsBackup
+++ /dev/null
@@ -1,92 +0,0 @@
-<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xmlns="http://maven.apache.org/POM/4.0.0"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <name>att-sdc-validation-impl</name>
-    <artifactId>att-sdc-validation-impl</artifactId>
-
-
-    <parent>
-        <groupId>org.openecomp.sdc</groupId>
-        <artifactId>openecomp-sdc-lib</artifactId>
-        <version>1.0-SNAPSHOT</version>
-        <relativePath>../..</relativePath>
-    </parent>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-facade-core</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-datatypes-lib</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>ch.qos.logback</groupId>
-            <artifactId>logback-classic</artifactId>
-            <version>${logback.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-logging-core</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-logging-api</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-validation-api</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-validation-core</artifactId>
-            <version>1.0-SNAPSHOT</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-validation-impl</artifactId>
-            <version>1.0-SNAPSHOT</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-heat-lib</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.testng</groupId>
-            <artifactId>testng</artifactId>
-            <version>6.9.10</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-validation-sdk</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-    </dependencies>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-surefire-plugin</artifactId>
-                <version>2.19.1</version>
-                <configuration>
-                    <useSystemClassLoader>false</useSystemClassLoader>
-                    <redirectTestOutputToFile>true</redirectTestOutputToFile>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
-
-</project>
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-api/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-api/pom.xml.versionsBackup
deleted file mode 100644
index 5850819..0000000
--- a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-api/pom.xml.versionsBackup
+++ /dev/null
@@ -1,49 +0,0 @@
-<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xmlns="http://maven.apache.org/POM/4.0.0"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <name>openecomp-sdc-validation-api</name>
-    <artifactId>openecomp-sdc-validation-api</artifactId>
-
-
-    <parent>
-        <groupId>org.openecomp.sdc</groupId>
-        <artifactId>openecomp-sdc-lib</artifactId>
-        <version>1.0-SNAPSHOT</version>
-        <relativePath>../..</relativePath>
-    </parent>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-facade-core</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>io.swagger</groupId>
-            <artifactId>swagger-annotations</artifactId>
-            <version>1.5.3</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-datatypes-lib</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>ch.qos.logback</groupId>
-            <artifactId>logback-classic</artifactId>
-            <version>${logback.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-logging-core</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-logging-api</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-    </dependencies>
-</project>
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-core/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-core/pom.xml.versionsBackup
deleted file mode 100644
index 8731097..0000000
--- a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-core/pom.xml.versionsBackup
+++ /dev/null
@@ -1,110 +0,0 @@
-<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xmlns="http://maven.apache.org/POM/4.0.0"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <name>openecomp-sdc-validation-core</name>
-    <artifactId>openecomp-sdc-validation-core</artifactId>
-
-
-    <parent>
-        <groupId>org.openecomp.sdc</groupId>
-        <artifactId>openecomp-sdc-lib</artifactId>
-        <version>1.0-SNAPSHOT</version>
-        <relativePath>../..</relativePath>
-    </parent>
-
-    <dependencies>
-        <dependency>
-            <groupId>ch.qos.logback</groupId>
-            <artifactId>logback-classic</artifactId>
-            <version>${logback.version}</version>
-
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-logging-core</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.testng</groupId>
-            <artifactId>testng</artifactId>
-            <scope>test</scope>
-            <version>6.8.5</version>
-            <exclusions>
-                <exclusion>
-                    <artifactId>snakeyaml</artifactId>
-                    <groupId>org.yaml</groupId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <version>RELEASE</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-utilities-lib</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-validation-api</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-validation-sdk</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-datatypes-lib</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.mockito</groupId>
-            <artifactId>mockito-all</artifactId>
-            <scope>test</scope>
-            <version>1.10.19</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc.common</groupId>
-            <artifactId>openecomp-configuration-management-core</artifactId>
-            <version>1707.0.0-SNAPSHOT</version>
-            <scope>runtime</scope>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.slf4j</groupId>
-                    <artifactId>slf4j-log4j12</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-heat-lib</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.testng</groupId>
-            <artifactId>testng</artifactId>
-            <version>6.9.10</version>
-        </dependency>
-    </dependencies>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-surefire-plugin</artifactId>
-                <version>2.19.1</version>
-                <configuration>
-                    <useSystemClassLoader>false</useSystemClassLoader>
-                    <redirectTestOutputToFile>true</redirectTestOutputToFile>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
-</project>
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/pom.xml.versionsBackup
deleted file mode 100644
index e2927eb..0000000
--- a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/pom.xml.versionsBackup
+++ /dev/null
@@ -1,103 +0,0 @@
-<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xmlns="http://maven.apache.org/POM/4.0.0"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <name>openecomp-sdc-validation-impl</name>
-    <artifactId>openecomp-sdc-validation-impl</artifactId>
-
-
-    <parent>
-        <groupId>org.openecomp.sdc</groupId>
-        <artifactId>openecomp-sdc-lib</artifactId>
-        <version>1.0-SNAPSHOT</version>
-        <relativePath>../..</relativePath>
-    </parent>
-
-    <dependencies>
-        <dependency>
-            <groupId>ch.qos.logback</groupId>
-            <artifactId>logback-classic</artifactId>
-            <version>${logback.version}</version>
-
-        </dependency>
-
-        <dependency>
-            <groupId>org.testng</groupId>
-            <artifactId>testng</artifactId>
-            <scope>test</scope>
-            <version>6.8.5</version>
-            <exclusions>
-                <exclusion>
-                    <artifactId>snakeyaml</artifactId>
-                    <groupId>org.yaml</groupId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-logging-core</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-logging-api</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <version>RELEASE</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-utilities-lib</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-validation-api</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-common-lib</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.mockito</groupId>
-            <artifactId>mockito-all</artifactId>
-            <scope>test</scope>
-            <version>1.10.19</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-heat-lib</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-logging-api</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <!--dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-validation-sdk</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency-->
-        <dependency>
-            <groupId>commons-io</groupId>
-            <artifactId>commons-io</artifactId>
-            <version>2.5</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-validation-core</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-    </dependencies>
-
-
-</project>
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/main/java/org/openecomp/sdc/validation/impl/validators/namingconvention/NovaServerNamingConventionGuideLineValidator.java b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/main/java/org/openecomp/sdc/validation/impl/validators/namingconvention/NovaServerNamingConventionGuideLineValidator.java
index a0c25d4..6016ba0 100644
--- a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/main/java/org/openecomp/sdc/validation/impl/validators/namingconvention/NovaServerNamingConventionGuideLineValidator.java
+++ b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/main/java/org/openecomp/sdc/validation/impl/validators/namingconvention/NovaServerNamingConventionGuideLineValidator.java
@@ -230,9 +230,9 @@
     }
     if (network.contains("_net_id")) {
       return network.substring(0, network.indexOf("_net_id"));
-    } else if (network.contains("net_name")) {
+    } else if (network.contains("_net_name")) {
       return network.substring(0, network.indexOf("_net_name"));
-    } else if (network.contains("net_fqdn")) {
+    } else if (network.contains("_net_fqdn")) {
       return network.substring(0, network.indexOf("_net_fqdn"));
     }
     return null;
diff --git a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-sdk/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-sdk/pom.xml.versionsBackup
deleted file mode 100644
index d179ae0..0000000
--- a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-sdk/pom.xml.versionsBackup
+++ /dev/null
@@ -1,42 +0,0 @@
-<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xmlns="http://maven.apache.org/POM/4.0.0"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <artifactId>openecomp-sdc-validation-sdk</artifactId>
-    <dependencies>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-logging-core</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.testng</groupId>
-            <artifactId>testng</artifactId>
-            <version>6.9.10</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-validation-api</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-heat-lib</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>commons-io</groupId>
-            <artifactId>commons-io</artifactId>
-            <version>2.5</version>
-        </dependency>
-    </dependencies>
-
-    <parent>
-        <groupId>org.openecomp.sdc</groupId>
-        <artifactId>openecomp-sdc-lib</artifactId>
-        <version>1.0-SNAPSHOT</version>
-        <relativePath>../..</relativePath>
-    </parent>
-
-</project>
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-validation-lib/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-sdc-validation-lib/pom.xml.versionsBackup
deleted file mode 100644
index 3188265..0000000
--- a/openecomp-be/lib/openecomp-sdc-validation-lib/pom.xml.versionsBackup
+++ /dev/null
@@ -1,24 +0,0 @@
-<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xmlns="http://maven.apache.org/POM/4.0.0"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <name>openecomp-sdc-validation-lib</name>
-    <artifactId>openecomp-sdc-validation-lib</artifactId>
-
-    <packaging>pom</packaging>
-    <parent>
-        <artifactId>openecomp-sdc-lib</artifactId>
-        <groupId>org.openecomp.sdc</groupId>
-        <version>1.0-SNAPSHOT</version>
-    </parent>
-
-    <modules>
-        <module>openecomp-sdc-validation-api</module>
-        <module>openecomp-sdc-validation-core</module>
-        <module>openecomp-sdc-validation-impl</module>
-        <module>openecomp-sdc-validation-sdk</module>
-        <module>att-sdc-validation-impl</module>
-    </modules>
-
-</project>
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/pom.xml.versionsBackup
deleted file mode 100644
index fc22abc..0000000
--- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/pom.xml.versionsBackup
+++ /dev/null
@@ -1,55 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <name>openecomp-sdc-vendor-license-api</name>
-    <artifactId>openecomp-sdc-vendor-license-api</artifactId>
-    <parent>
-        <groupId>org.openecomp.sdc</groupId>
-        <artifactId>openecomp-sdc-lib</artifactId>
-        <version>1.0-SNAPSHOT</version>
-        <relativePath>../..</relativePath>
-    </parent>
-    <dependencies>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-facade-core</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-versioning-core</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-nosqldb-core</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>javax.el</groupId>
-            <artifactId>javax.el-api</artifactId>
-            <version>${javax.el-api.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.glassfish.web</groupId>
-            <artifactId>javax.el</artifactId>
-            <version>2.2.4</version>
-        </dependency>
-        <dependency>
-            <groupId>com.fasterxml.jackson.core</groupId>
-            <artifactId>jackson-annotations</artifactId>
-            <version>2.7.4</version>
-        </dependency>
-        <dependency>
-            <groupId>com.fasterxml.jackson.dataformat</groupId>
-            <artifactId>jackson-dataformat-xml</artifactId>
-            <version>2.7.4</version>
-        </dependency>
-        <dependency>
-            <groupId>org.codehaus.woodstox</groupId>
-            <artifactId>woodstox-core-asl</artifactId>
-            <version>4.4.1</version>
-        </dependency>
-    </dependencies>
-</project>
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/EntitlementPoolEntity.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/EntitlementPoolEntity.java
index ce22593..dce2939 100644
--- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/EntitlementPoolEntity.java
+++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/EntitlementPoolEntity.java
@@ -26,12 +26,10 @@
 import com.datastax.driver.mapping.annotations.Frozen;
 import com.datastax.driver.mapping.annotations.PartitionKey;
 import com.datastax.driver.mapping.annotations.Table;
-import org.openecomp.sdc.vendorlicense.dao.types.xml.AggregationFunctionForXml;
-import org.openecomp.sdc.vendorlicense.dao.types.xml.EntitlementMetricForXml;
-import org.openecomp.sdc.vendorlicense.dao.types.xml.EntitlementTimeForXml;
-import org.openecomp.sdc.vendorlicense.dao.types.xml.ThresholdForXml;
-import org.openecomp.sdc.vendorlicense.dao.types.xml.LimitXml;
 import org.openecomp.sdc.vendorlicense.dao.types.xml.LimitForXml;
+import org.openecomp.sdc.vendorlicense.dao.types.xml.LimitXml;
+import org.openecomp.sdc.vendorlicense.dao.types.xml.OperationalScopeForXml;
+import org.openecomp.sdc.vendorlicense.dao.types.xml.ThresholdForXml;
 import org.openecomp.sdc.versioning.dao.types.Version;
 import org.openecomp.sdc.versioning.dao.types.VersionableEntity;
 
@@ -65,25 +63,12 @@
   @Enumerated
   private ThresholdUnit thresholdUnit;
 
-  @Column(name = "entitlement_metric")
-  @Frozen
-  private ChoiceOrOther<EntitlementMetric> entitlementMetric;
   private String increments;
 
-  @Column(name = "aggregation_func")
-  @Frozen
-  private ChoiceOrOther<AggregationFunction> aggregationFunction;
-
   @Column(name = "operational_scope")
   @Frozen
   private MultiChoiceOrOther<OperationalScope> operationalScope;
 
-  @Frozen
-  private ChoiceOrOther<EntitlementTime> time;
-
-  @Column(name = "manufacturer_ref_num")
-  private String manufacturerReferenceNumber;
-
   @Column(name = "ref_fg_ids")
   private Set<String> referencingFeatureGroups = new HashSet<>();
 
@@ -96,6 +81,9 @@
 
   private Collection<LimitEntity> limits;
 
+  //Defined and used only for License Artifcat XMLs
+  private String manufacturerReferenceNumber;
+
   public EntitlementPoolEntity() {
   }
 
@@ -200,15 +188,6 @@
     this.thresholdUnit = thresholdUnits;
   }
 
-  public ChoiceOrOther<EntitlementMetric> getEntitlementMetric() {
-    return entitlementMetric;
-  }
-
-  public void setEntitlementMetric(ChoiceOrOther<EntitlementMetric> entitlementMetric) {
-    entitlementMetric.resolveEnum(EntitlementMetric.class);
-    this.entitlementMetric = entitlementMetric;
-  }
-
   public String getIncrements() {
     return increments;
   }
@@ -217,15 +196,6 @@
     this.increments = increments;
   }
 
-  public ChoiceOrOther<AggregationFunction> getAggregationFunction() {
-    return aggregationFunction;
-  }
-
-  public void setAggregationFunction(ChoiceOrOther<AggregationFunction> aggregationFunction) {
-    aggregationFunction.resolveEnum(AggregationFunction.class);
-    this.aggregationFunction = aggregationFunction;
-  }
-
   public MultiChoiceOrOther<OperationalScope> getOperationalScope() {
     return operationalScope;
   }
@@ -237,23 +207,6 @@
     this.operationalScope = operationalScope;
   }
 
-  public ChoiceOrOther<EntitlementTime> getTime() {
-    return time;
-  }
-
-  public void setTime(ChoiceOrOther<EntitlementTime> time) {
-    time.resolveEnum(EntitlementTime.class);
-    this.time = time;
-  }
-
-  public String getManufacturerReferenceNumber() {
-    return manufacturerReferenceNumber;
-  }
-
-  public void setManufacturerReferenceNumber(String manufacturerReferenceNumber) {
-    this.manufacturerReferenceNumber = manufacturerReferenceNumber;
-  }
-
   /**
    * Gets threshold for artifact.
    *
@@ -274,35 +227,6 @@
     return version.toString();
   }
 
-  /**
-   * Gets entitlement metric for artifact.
-   *
-   * @return the entitlement metric for artifact
-   */
-  public EntitlementMetricForXml getEntitlementMetricForArtifact() {
-    EntitlementMetricForXml metric = new EntitlementMetricForXml();
-    if (entitlementMetric != null) {
-      metric.setValue(entitlementMetric.getResult());
-    } else {
-      metric.setValue(null);
-    }
-    return metric;
-  }
-
-  /**
-   * Gets time for artifact.
-   *
-   * @return the time for artifact
-   */
-  public EntitlementTimeForXml getTimeForArtifact() {
-    EntitlementTimeForXml timeForXml = new EntitlementTimeForXml();
-    if (time != null) {
-      timeForXml.setValue(time.getResult());
-    }
-
-    return timeForXml;
-  }
-
   public String getStartDate() {
     return startDate;
   }
@@ -334,7 +258,7 @@
         if(obj.getType().equals(LimitType.ServiceProvider)){
           LimitXml xmlObj = new LimitXml();
           xmlObj.setDescription(obj.getDescription());
-          xmlObj.setMetric(obj.getMetric().toString());
+          xmlObj.setMetric(obj.getMetric()!=null?obj.getMetric().name():null);
           xmlObj.setValues(obj.getValue()!=null?Integer.toString(obj.getValue()):null);
           xmlObj.setUnit(obj.getUnit()!=null?Integer.toString(obj.getUnit()):null);
           xmlObj.setAggregationFunction(obj.getAggregationFunction()!=null?obj.getAggregationFunction().name():null);
@@ -357,7 +281,7 @@
         if(obj.getType().equals(LimitType.Vendor)){
           LimitXml xmlObj = new LimitXml();
           xmlObj.setDescription(obj.getDescription());
-          xmlObj.setMetric(obj.getMetric().toString());
+          xmlObj.setMetric(obj.getMetric()!=null?obj.getMetric().name():null);
           xmlObj.setValues(obj.getValue()!=null?Integer.toString(obj.getValue()):null);
           xmlObj.setUnit(obj.getUnit()!=null?Integer.toString(obj.getUnit()):null);
           xmlObj.setAggregationFunction(obj.getAggregationFunction()!=null?obj.getAggregationFunction().name():null);
@@ -378,8 +302,7 @@
   public int hashCode() {
     return Objects
         .hash(vendorLicenseModelId, version, id, name, description, thresholdValue, thresholdUnit,
-            entitlementMetric, increments, aggregationFunction, operationalScope, time,
-            manufacturerReferenceNumber, referencingFeatureGroups, startDate, expiryDate);
+            increments, operationalScope, referencingFeatureGroups, startDate, expiryDate);
   }
 
   @Override
@@ -397,12 +320,8 @@
         && Objects.equals(name, that.name)
         && Objects.equals(description, that.description)
         && Objects.equals(thresholdUnit, that.thresholdUnit)
-        && Objects.equals(entitlementMetric, that.entitlementMetric)
         && Objects.equals(increments, that.increments)
-        && Objects.equals(aggregationFunction, that.aggregationFunction)
         && Objects.equals(operationalScope, that.operationalScope)
-        && Objects.equals(time, that.time)
-        && Objects.equals(manufacturerReferenceNumber, that.manufacturerReferenceNumber)
         && Objects.equals(referencingFeatureGroups, that.referencingFeatureGroups)
         && Objects.equals(startDate, that.startDate)
         && Objects.equals(expiryDate, that.expiryDate);
@@ -418,12 +337,8 @@
         + ", description='" + description + '\''
         + ", thresholdValue=" + thresholdValue
         + ", thresholdUnit='" + thresholdUnit + '\''
-        + ", entitlementMetric=" + entitlementMetric
         + ", increments='" + increments + '\''
-        + ", aggregationFunction=" + aggregationFunction
         + ", operationalScope=" + operationalScope
-        + ", time=" + time
-        + ", manufacturerReferenceNumber='" + manufacturerReferenceNumber + '\''
         + ", referencingFeatureGroups=" + referencingFeatureGroups
         + ", version_uuid=" + versionUuId
         + ", startDate=" + startDate
@@ -432,30 +347,26 @@
   }
 
   /**
-   * Gets aggregation function for artifact.
-   *
-   * @return the aggregation function for artifact
-   */
-  public AggregationFunctionForXml getAggregationFunctionForArtifact() {
-    AggregationFunctionForXml aggregationFunctionForXml = new AggregationFunctionForXml();
-    if (entitlementMetric != null) {
-      aggregationFunctionForXml.setValue(aggregationFunction.getResult());
-    } else {
-      aggregationFunctionForXml.setValue(null);
-    }
-    return aggregationFunctionForXml;
-  }
-
-  /**
    * Gets operational scope for artifact.
    *
    * @return the operational scope for artifact
    */
-  public Set<String> getOperationalScopeForArtifact() {
+  public OperationalScopeForXml getOperationalScopeForArtifact() {
+    OperationalScopeForXml obj = new OperationalScopeForXml();
     if (operationalScope != null) {
-      return operationalScope.getResults();
-    } else {
-      return null;
+      if(operationalScope.getResults().size() > 0) {
+        obj.setValue(operationalScope.getResults());
+      }
     }
+    return obj;
+  }
+
+  //Defined and used only for License Artifcat XMLs
+  public void setManufacturerReferenceNumber(String manufacturerReferenceNumber) {
+    this.manufacturerReferenceNumber = manufacturerReferenceNumber;
+  }
+
+  public String getManufacturerReferenceNumber() {
+    return manufacturerReferenceNumber;
   }
 }
diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/LicenseKeyGroupEntity.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/LicenseKeyGroupEntity.java
index 654093d..d5efd59 100644
--- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/LicenseKeyGroupEntity.java
+++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/LicenseKeyGroupEntity.java
@@ -29,6 +29,8 @@
 import org.openecomp.sdc.vendorlicense.dao.types.xml.LicenseKeyTypeForXml;
 import org.openecomp.sdc.vendorlicense.dao.types.xml.LimitXml;
 import org.openecomp.sdc.vendorlicense.dao.types.xml.LimitForXml;
+import org.openecomp.sdc.vendorlicense.dao.types.xml.OperationalScopeForXml;
+import org.openecomp.sdc.vendorlicense.dao.types.xml.ThresholdForXml;
 import org.openecomp.sdc.versioning.dao.types.Version;
 import org.openecomp.sdc.versioning.dao.types.VersionableEntity;
 
@@ -61,8 +63,17 @@
   private Set<String> referencingFeatureGroups = new HashSet<>();
   @Column(name = "version_uuid")
   private String versionUuId;
+  private Integer thresholdValue;
+  private ThresholdUnit thresholdUnits;
+  private String increments;
 
   private Collection<LimitEntity> limits;
+  private String startDate;
+  private String expiryDate;
+
+  //Defined and used only for License Artifcat XMLs
+  private String manufacturerReferenceNumber;
+
 
   public LicenseKeyGroupEntity() {
   }
@@ -167,6 +178,37 @@
     this.referencingFeatureGroups = referencingFeatureGroups;
   }
 
+  public Integer getThresholdValue() {
+    return thresholdValue;
+  }
+
+  public void setThresholdValue(Integer thresholdValue) {
+    this.thresholdValue = thresholdValue;
+  }
+
+  public ThresholdUnit getThresholdUnits() {
+    return thresholdUnits;
+  }
+
+  public void setThresholdUnits(ThresholdUnit thresholdUnit) {
+    this.thresholdUnits = thresholdUnit;
+  }
+
+  public String getIncrements() {
+    return increments;
+  }
+
+  public void setIncrements(String increments) {
+    this.increments = increments;
+  }
+
+  public ThresholdForXml getThresholdForArtifact() {
+    ThresholdForXml threshold = new ThresholdForXml();
+    threshold.setUnit(getThresholdUnits() == null ? null : getThresholdUnits().name());
+    threshold.setValue(getThresholdValue());
+    return threshold;
+  }
+
   public Collection<LimitEntity> getLimits() {
     return limits;
   }
@@ -221,11 +263,28 @@
     return null;
   }
 
+  public String getStartDate() {
+    return startDate;
+  }
+
+  public void setStartDate(String startDate) {
+    this.startDate = startDate;
+  }
+
+  public String getExpiryDate() {
+    return expiryDate;
+  }
+
+  public void setExpiryDate(String expiryDate) {
+    this.expiryDate = expiryDate;
+  }
+
   @Override
   public int hashCode() {
     return Objects
         .hash(vendorLicenseModelId, version, id, name, description, type, operationalScope,
-            referencingFeatureGroups);
+            referencingFeatureGroups, startDate, expiryDate,
+            thresholdValue, thresholdUnits, increments);
   }
 
   @Override
@@ -243,7 +302,12 @@
         && Objects.equals(description, that.description)
         && type == that.type
         && Objects.equals(operationalScope, that.operationalScope)
-        && Objects.equals(referencingFeatureGroups, that.referencingFeatureGroups);
+        && Objects.equals(referencingFeatureGroups, that.referencingFeatureGroups)
+        && Objects.equals(startDate, that.startDate)
+        && Objects.equals(expiryDate, that.expiryDate)
+        && Objects.equals(thresholdValue, that.thresholdValue)
+        && Objects.equals(thresholdUnits, that.thresholdUnits)
+        && Objects.equals(increments, that.increments);
   }
 
   @Override
@@ -257,6 +321,11 @@
         + ", operationalScope=" + operationalScope
         + ", referencingFeatureGroups=" + referencingFeatureGroups
         + ", versionUuId='" + versionUuId + '\''
+        + ", startDate=" + startDate
+        + ", expiryDate=" + expiryDate
+        + ", thresholdValue='" + thresholdValue + '\''
+        + ", thresholdUnits='" + thresholdUnits + '\''
+        + ", increments='" + increments + '\''
         + '}';
   }
 
@@ -265,12 +334,14 @@
    *
    * @return the operational scope for artifact
    */
-  public Set<String> getOperationalScopeForArtifact() {
+  public OperationalScopeForXml getOperationalScopeForArtifact() {
+    OperationalScopeForXml obj = new OperationalScopeForXml();
     if (operationalScope != null) {
-      return operationalScope.getResults();
-    } else {
-      return null;
+      if(operationalScope.getResults().size() > 0) {
+        obj.setValue(operationalScope.getResults());
+      }
     }
+    return obj;
   }
 
   /**
@@ -295,4 +366,13 @@
     }
     return typeXml;
   }
+
+  //Defined and used only for License Artifcat XMLs
+  public String getManufacturerReferenceNumber() {
+    return manufacturerReferenceNumber;
+  }
+
+  public void setManufacturerReferenceNumber(String manufacturerReferenceNumber) {
+    this.manufacturerReferenceNumber = manufacturerReferenceNumber;
+  }
 }
diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/xml/OperationalScopeForXml.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/xml/OperationalScopeForXml.java
new file mode 100644
index 0000000..f51a412
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/dao/types/xml/OperationalScopeForXml.java
@@ -0,0 +1,38 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdc.vendorlicense.dao.types.xml;
+
+import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper;
+
+import java.util.Set;
+
+public class OperationalScopeForXml {
+  Set<String> value;
+
+  @JacksonXmlElementWrapper(localName = "value", useWrapping = false)
+  public Set<String> getValue() {
+    return value;
+  }
+
+  public void setValue(Set<String> value) {
+    this.value = value;
+  }
+}
diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/facade/VendorLicenseFacade.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/facade/VendorLicenseFacade.java
index 9ab7c0c..3d27de3 100644
--- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/facade/VendorLicenseFacade.java
+++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-api/src/main/java/org/openecomp/sdc/vendorlicense/facade/VendorLicenseFacade.java
@@ -76,6 +76,9 @@
   LicenseAgreementEntity createLicenseAgreement(LicenseAgreementEntity licenseAgreement,
                                                 String user);
 
+  Collection<FeatureGroupEntity> listFeatureGroups(String vlmId, Version version,
+                                                         String user);
+
   FeatureGroupEntity createFeatureGroup(FeatureGroupEntity featureGroup, String user);
 
 
diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/pom.xml.versionsBackup
deleted file mode 100644
index b1141fc..0000000
--- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/pom.xml.versionsBackup
+++ /dev/null
@@ -1,53 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <name>openecomp-sdc-vendor-license-core</name>
-    <artifactId>openecomp-sdc-vendor-license-core</artifactId>
-
-
-    <parent>
-        <groupId>org.openecomp.sdc</groupId>
-        <artifactId>openecomp-sdc-lib</artifactId>
-        <version>1.0-SNAPSHOT</version>
-        <relativePath>../..</relativePath>
-    </parent>
-    <dependencies>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-vendor-license-api</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.mockito</groupId>
-            <artifactId>mockito-all</artifactId>
-            <scope>test</scope>
-            <version>1.10.19</version>
-        </dependency>
-        <dependency>
-            <groupId>org.testng</groupId>
-            <artifactId>testng</artifactId>
-            <scope>test</scope>
-            <version>6.8.5</version>
-            <exclusions>
-                <exclusion>
-                    <artifactId>snakeyaml</artifactId>
-                    <groupId>org.yaml</groupId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <scope>test</scope>
-            <version>4.11</version>
-        </dependency>
-        <dependency>
-            <groupId>com.fasterxml.jackson.dataformat</groupId>
-            <artifactId>jackson-dataformat-xml</artifactId>
-            <version>2.7.4</version>
-        </dependency>
-    </dependencies>
-
-</project>
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/EntitlementPoolZusammenDaoImpl.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/EntitlementPoolZusammenDaoImpl.java
index 4cccb67..b880c67 100644
--- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/EntitlementPoolZusammenDaoImpl.java
+++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/EntitlementPoolZusammenDaoImpl.java
@@ -11,11 +11,7 @@
 import org.openecomp.core.zusammen.api.ZusammenAdaptor;
 import org.openecomp.core.zusammen.api.ZusammenUtil;
 import org.openecomp.sdc.vendorlicense.dao.EntitlementPoolDao;
-import org.openecomp.sdc.vendorlicense.dao.types.AggregationFunction;
-import org.openecomp.sdc.vendorlicense.dao.types.ChoiceOrOther;
-import org.openecomp.sdc.vendorlicense.dao.types.EntitlementMetric;
 import org.openecomp.sdc.vendorlicense.dao.types.EntitlementPoolEntity;
-import org.openecomp.sdc.vendorlicense.dao.types.EntitlementTime;
 import org.openecomp.sdc.vendorlicense.dao.types.MultiChoiceOrOther;
 import org.openecomp.sdc.vendorlicense.dao.types.OperationalScope;
 import org.openecomp.sdc.vendorlicense.dao.types.ThresholdUnit;
@@ -214,15 +210,11 @@
     Info info = new Info();
     info.setName(entitlementPool.getName());
     info.setDescription(entitlementPool.getDescription());
+    info.addProperty("version_uuid", entitlementPool.getVersionUuId());
     info.addProperty("thresholdValue", entitlementPool.getThresholdValue());
     info.addProperty("threshold_unit", entitlementPool.getThresholdUnit());
-    info.addProperty("entitlement_metric", entitlementPool.getEntitlementMetric());
     info.addProperty("increments", entitlementPool.getIncrements());
-    info.addProperty("aggregation_func", entitlementPool.getAggregationFunction());
     info.addProperty("operational_scope", entitlementPool.getOperationalScope());
-    info.addProperty("EntitlementTime", entitlementPool.getTime());
-    info.addProperty("manufacturerReferenceNumber",
-        entitlementPool.getManufacturerReferenceNumber());
     info.addProperty("startDate", entitlementPool.getStartDate());
     info.addProperty("expiryDate", entitlementPool.getExpiryDate());
     entitlementPoolElement.setInfo(info);
@@ -243,6 +235,7 @@
         new EntitlementPoolEntity(vlmId, version, elementInfo.getId().getValue());
     entitlmentPool.setName(elementInfo.getInfo().getName());
     entitlmentPool.setDescription(elementInfo.getInfo().getDescription());
+    entitlmentPool.setVersionUuId(elementInfo.getInfo().getProperty("version_uuid"));
     entitlmentPool
         .setThresholdValue(elementInfo.getInfo().getProperty("thresholdValue") != null
                 ? VlmZusammenUtil.toInteger(elementInfo.getInfo().getProperty("thresholdValue")) : null);
@@ -250,17 +243,9 @@
     Object threshold_unit = elementInfo.getInfo().getProperty("threshold_unit");
     entitlmentPool.setThresholdUnit( threshold_unit != null ?
         ThresholdUnit.valueOf(elementInfo.getInfo().getProperty("threshold_unit")) : null);
-    entitlmentPool.setEntitlementMetric(
-        getEntitlementMetricCoiceOrOther(elementInfo.getInfo().getProperty("entitlement_metric")));
     entitlmentPool.setIncrements(elementInfo.getInfo().getProperty("increments"));
-    entitlmentPool.setAggregationFunction(
-        getAggregationFuncCoiceOrOther(elementInfo.getInfo().getProperty("aggregation_func")));
     entitlmentPool.setOperationalScope(getOperationalScopeMultiChoiceOrOther(
         elementInfo.getInfo().getProperty("operational_scope")));
-    entitlmentPool.setTime(
-        getEntitlementTimeCoiceOrOther(elementInfo.getInfo().getProperty("EntitlementTime")));
-    entitlmentPool.setManufacturerReferenceNumber(
-        elementInfo.getInfo().getProperty("manufacturerReferenceNumber"));
     entitlmentPool.setStartDate(elementInfo.getInfo().getProperty("startDate"));
     entitlmentPool.setExpiryDate(elementInfo.getInfo().getProperty("expiryDate"));
 
@@ -272,23 +257,6 @@
     return entitlmentPool;
   }
 
-  private ChoiceOrOther<AggregationFunction> getAggregationFuncCoiceOrOther(
-      Map aggregationFunction) {
-    return new ChoiceOrOther<>
-        (AggregationFunction.valueOf((String) aggregationFunction.get("choice")),
-            (String) aggregationFunction.get("other"));
-  }
-
-  private ChoiceOrOther<EntitlementMetric> getEntitlementMetricCoiceOrOther(Map entitlementMetric) {
-    return new ChoiceOrOther<>(EntitlementMetric.valueOf((String) entitlementMetric.get("choice")
-    ), (String) entitlementMetric.get("other"));
-  }
-
-  private ChoiceOrOther<EntitlementTime> getEntitlementTimeCoiceOrOther(Map entitlementTime) {
-    return new ChoiceOrOther<>(EntitlementTime.valueOf((String) entitlementTime.get("choice")),
-        (String) entitlementTime.get("other"));
-  }
-
   private MultiChoiceOrOther<OperationalScope> getOperationalScopeMultiChoiceOrOther
       (Map<String, Object>
            operationalScope) {
diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/LicenseKeyGroupZusammenDaoImpl.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/LicenseKeyGroupZusammenDaoImpl.java
index 95dfd79..976db94 100644
--- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/LicenseKeyGroupZusammenDaoImpl.java
+++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/dao/impl/zusammen/LicenseKeyGroupZusammenDaoImpl.java
@@ -15,6 +15,7 @@
 import org.openecomp.sdc.vendorlicense.dao.types.LicenseKeyType;
 import org.openecomp.sdc.vendorlicense.dao.types.MultiChoiceOrOther;
 import org.openecomp.sdc.vendorlicense.dao.types.OperationalScope;
+import org.openecomp.sdc.vendorlicense.dao.types.ThresholdUnit;
 import org.openecomp.sdc.versioning.dao.types.Version;
 
 import java.util.ArrayList;
@@ -212,8 +213,15 @@
     Info info = new Info();
     info.setName(licenseKeyGroup.getName());
     info.setDescription(licenseKeyGroup.getDescription());
+    info.addProperty("version_uuid", licenseKeyGroup.getVersionUuId());
     info.addProperty("LicenseKeyType", licenseKeyGroup.getType());
+    info.addProperty("version_uuid", licenseKeyGroup.getVersionUuId());
     info.addProperty("operational_scope", licenseKeyGroup.getOperationalScope());
+    info.addProperty("startDate", licenseKeyGroup.getStartDate());
+    info.addProperty("expiryDate", licenseKeyGroup.getExpiryDate());
+    info.addProperty("thresholdValue", licenseKeyGroup.getThresholdValue());
+    info.addProperty("thresholdUnits", licenseKeyGroup.getThresholdUnits());
+    info.addProperty("increments", licenseKeyGroup.getIncrements());
     lkgElement.setInfo(info);
 
    if (licenseKeyGroup.getReferencingFeatureGroups() != null
@@ -233,11 +241,23 @@
         new LicenseKeyGroupEntity(vlmId, version, elementInfo.getId().getValue());
     licenseKeyGroup.setName(elementInfo.getInfo().getName());
     licenseKeyGroup.setDescription(elementInfo.getInfo().getDescription());
-
+    licenseKeyGroup.setVersionUuId(elementInfo.getInfo().getProperty("version_uuid"));
     licenseKeyGroup
         .setType(LicenseKeyType.valueOf(elementInfo.getInfo().getProperty("LicenseKeyType")));
+    licenseKeyGroup.setVersionUuId(elementInfo.getInfo().getProperty("version_uuid"));
     licenseKeyGroup.setOperationalScope(getOperationalScopeMultiChoiceOrOther(
         elementInfo.getInfo().getProperty("operational_scope")));
+    licenseKeyGroup.setStartDate(elementInfo.getInfo().getProperty("startDate"));
+    licenseKeyGroup.setExpiryDate(elementInfo.getInfo().getProperty("expiryDate"));
+    if (elementInfo.getInfo().getProperty("thresholdUnits") != null ){
+      licenseKeyGroup.setThresholdUnits(ThresholdUnit.valueOf(elementInfo
+          .getInfo().getProperty("thresholdUnits")));
+    }
+    if (elementInfo.getInfo().getProperty("thresholdValue") != null ){
+      licenseKeyGroup.setThresholdValue(toInteger(elementInfo.getInfo().getProperty
+          ("thresholdValue")));
+    }
+    licenseKeyGroup.setIncrements(elementInfo.getInfo().getProperty("increments"));
 
     if (elementInfo.getRelations() != null && elementInfo.getRelations().size() > 0) {
       licenseKeyGroup
@@ -259,4 +279,15 @@
   }
   return null;
   }
+
+  private Integer toInteger(Object val) {
+    if (val instanceof Double) {
+      return ((Double) val).intValue();
+    } else if (val instanceof String) {
+      return new Integer((String) val);
+    } else if (val instanceof Integer) {
+      return (Integer) val;
+    }
+    throw new RuntimeException("invalid value for integer:" + val.getClass());
+  }
 }
diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/facade/impl/VendorLicenseFacadeImpl.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/facade/impl/VendorLicenseFacadeImpl.java
index 857ee7f..5f9dd10 100644
--- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/facade/impl/VendorLicenseFacadeImpl.java
+++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/facade/impl/VendorLicenseFacadeImpl.java
@@ -25,6 +25,7 @@
 import static org.openecomp.sdc.vendorlicense.errors.UncompletedVendorLicenseModelErrorType.SUBMIT_UNCOMPLETED_VLM_MSG_LA_MISSING_FG;
 import static org.openecomp.sdc.vendorlicense.errors.UncompletedVendorLicenseModelErrorType.SUBMIT_UNCOMPLETED_VLM_MSG_MISSING_LA;
 
+import org.apache.commons.collections4.CollectionUtils;
 import org.openecomp.core.util.UniqueValueUtil;
 import org.openecomp.core.utilities.CommonMethods;
 import org.openecomp.sdc.common.errors.CoreException;
@@ -70,10 +71,7 @@
 import org.openecomp.sdc.versioning.types.VersionInfo;
 import org.openecomp.sdc.versioning.types.VersionableEntityAction;
 
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
+import java.util.*;
 
 public class VendorLicenseFacadeImpl implements VendorLicenseFacade {
 
@@ -128,8 +126,6 @@
         getVersionInfo(featureGroup.getVendorLicenseModelId(), VersionableEntityAction.Read,
             user), user);
     featureGroup.setVersion(version);
-
-
     return getFeatureGroup(featureGroup);
   }
 
@@ -137,19 +133,9 @@
     FeatureGroupEntity retrieved = featureGroupDao.get(featureGroup);
     VersioningUtil
         .validateEntityExistence(retrieved, featureGroup, VendorLicenseModelEntity.ENTITY_TYPE);
-    if(retrieved.getManufacturerReferenceNumber() == null){
-      Object[] entitlementPoolIdsList = retrieved.getEntitlementPoolIds().toArray();
-      if(entitlementPoolIdsList != null && entitlementPoolIdsList.length > 0){
-        String entitlementPoolId = entitlementPoolIdsList[0].toString();
-        EntitlementPoolEntity entitlementPoolEntity = new EntitlementPoolEntity(retrieved.getVendorLicenseModelId(),
-                retrieved.getVersion(), entitlementPoolId);
-        entitlementPoolEntity = entitlementPoolDao.get(entitlementPoolEntity);
-        retrieved.setManufacturerReferenceNumber(entitlementPoolDao.getManufacturerReferenceNumber(
-                entitlementPoolEntity));
-        featureGroupDao.update(retrieved);
-      }
+    if (retrieved.getManufacturerReferenceNumber() == null) {
+      updateManufacturerNumberInFeatureGroup(retrieved);
     }
-
     return retrieved;
   }
 
@@ -400,6 +386,20 @@
   }
 
   @Override
+  public Collection<FeatureGroupEntity> listFeatureGroups(String vlmId, Version version,
+                                                                String user) {
+    Collection<FeatureGroupEntity> featureGroupEntities =
+        featureGroupDao.list(new FeatureGroupEntity(vlmId, VersioningUtil
+            .resolveVersion(version, getVersionInfo(vlmId, VersionableEntityAction.Read, user),
+                user), null));
+    featureGroupEntities.stream()
+        .filter(fgEntity -> Objects.isNull(fgEntity.getManufacturerReferenceNumber()))
+        .forEach(fgEntity -> updateManufacturerNumberInFeatureGroup(fgEntity));
+    return featureGroupEntities;
+  }
+
+
+  @Override
   public Collection<ErrorCode> validateLicensingData(String vlmId, Version version,
                                                      String licenseAgreementId,
                                                      Collection<String> featureGroupIds) {
@@ -503,41 +503,49 @@
     return retrieved;
   }
 
+  private void updateManufacturerNumberInFeatureGroup(FeatureGroupEntity featureGroupEntity) {
+    if (CollectionUtils.isNotEmpty(featureGroupEntity.getEntitlementPoolIds())) {
+      Object[] entitlementPoolIdsList = featureGroupEntity.getEntitlementPoolIds().toArray();
+      if (entitlementPoolIdsList != null && entitlementPoolIdsList.length > 0) {
+        String entitlementPoolId = entitlementPoolIdsList[0].toString();
+        EntitlementPoolEntity entitlementPoolEntity =
+            new EntitlementPoolEntity(featureGroupEntity.getVendorLicenseModelId(),
+                featureGroupEntity.getVersion(), entitlementPoolId);
+        entitlementPoolEntity = entitlementPoolDao.get(entitlementPoolEntity);
+        featureGroupEntity.setManufacturerReferenceNumber(
+            entitlementPoolDao.getManufacturerReferenceNumber(entitlementPoolEntity));
+        featureGroupDao.update(featureGroupEntity);
+      }
+    }
+  }
   private void validateCompletedVendorLicenseModel(String vendorLicenseModelId, String user) {
-    Version version = VersioningUtil.resolveVersion(null,
-        getVersionInfo(vendorLicenseModelId, VersionableEntityAction.Read, user), user);
-    Collection<LicenseAgreementEntity> licenseAgreements = licenseAgreementDao
-        .list(new LicenseAgreementEntity(vendorLicenseModelId, version, null));
+      Version version = VersioningUtil.resolveVersion(null,
+              getVersionInfo(vendorLicenseModelId, VersionableEntityAction.Read, user), user);
+      Collection<LicenseAgreementEntity> licenseAgreements = licenseAgreementDao
+              .list(new LicenseAgreementEntity(vendorLicenseModelId, version, null));
 
-    if (licenseAgreements == null || licenseAgreements.isEmpty()) {
-      MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
-          LoggerTragetServiceName.SUBMIT_ENTITY, ErrorLevel.ERROR.name(),
-          LoggerErrorCode.DATA_ERROR.getErrorCode(), LoggerErrorDescription.SUBMIT_ENTITY);
-      throw new CoreException(
-              new SubmitUncompletedLicenseModelErrorBuilder(SUBMIT_UNCOMPLETED_VLM_MSG_MISSING_LA).build());
-    }
+      if (CollectionUtils.isNotEmpty(licenseAgreements)) {
+          licenseAgreements.forEach(licenseAgreement -> {
+              if (CollectionUtils.isEmpty(licenseAgreement.getFeatureGroupIds())) {
+                  MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
+                          LoggerTragetServiceName.SUBMIT_ENTITY, ErrorLevel.ERROR.name(),
+                          LoggerErrorCode.DATA_ERROR.getErrorCode(), LoggerErrorDescription.SUBMIT_ENTITY);
+                  throw new CoreException(
+                          new SubmitUncompletedLicenseModelErrorBuilder(SUBMIT_UNCOMPLETED_VLM_MSG_LA_MISSING_FG).build());
+              }
+          });
 
-    for (LicenseAgreementEntity licenseAgreement : licenseAgreements) {
-        if (licenseAgreement.getFeatureGroupIds() == null || licenseAgreement.getFeatureGroupIds().isEmpty()) {
-        MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
-            LoggerTragetServiceName.SUBMIT_ENTITY, ErrorLevel.ERROR.name(),
-            LoggerErrorCode.DATA_ERROR.getErrorCode(), LoggerErrorDescription.SUBMIT_ENTITY);
-        throw new CoreException(
-                new SubmitUncompletedLicenseModelErrorBuilder(SUBMIT_UNCOMPLETED_VLM_MSG_LA_MISSING_FG).build());
+          Collection<FeatureGroupEntity> featureGroupEntities = featureGroupDao.list(
+                  new FeatureGroupEntity(vendorLicenseModelId, version, null));
+          featureGroupEntities.forEach(featureGroupEntity -> {
+              if(CollectionUtils.isEmpty(featureGroupEntity.getEntitlementPoolIds())) {
+                  MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
+                          LoggerTragetServiceName.SUBMIT_ENTITY, ErrorLevel.ERROR.name(),
+                          LoggerErrorCode.DATA_ERROR.getErrorCode(), LoggerErrorDescription.SUBMIT_ENTITY);
+                  throw new CoreException(
+                          new SubmitUncompletedLicenseModelErrorBuilder(SUBMIT_UNCOMPLETED_VLM_MSG_FG_MISSING_EP).build());
+              }
+          });
       }
-    }
-
-    Collection<FeatureGroupEntity> featureGroupEntities =
-        featureGroupDao.list(new FeatureGroupEntity(vendorLicenseModelId, version, null));
-    for (FeatureGroupEntity featureGroupEntity : featureGroupEntities) {
-        if (featureGroupEntity.getEntitlementPoolIds() == null || featureGroupEntity.getEntitlementPoolIds().isEmpty()) {
-        MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
-            LoggerTragetServiceName.SUBMIT_ENTITY, ErrorLevel.ERROR.name(),
-            LoggerErrorCode.DATA_ERROR.getErrorCode(), LoggerErrorDescription.SUBMIT_ENTITY);
-        throw new CoreException(
-                new SubmitUncompletedLicenseModelErrorBuilder(SUBMIT_UNCOMPLETED_VLM_MSG_FG_MISSING_EP).build());
-      }
-    }
-
   }
 }
diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/VendorLicenseArtifactsServiceImpl.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/VendorLicenseArtifactsServiceImpl.java
index d91a510..7d2cdc5 100644
--- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/VendorLicenseArtifactsServiceImpl.java
+++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/VendorLicenseArtifactsServiceImpl.java
@@ -20,6 +20,7 @@
 
 package org.openecomp.sdc.vendorlicense.licenseartifacts.impl;
 
+import org.apache.commons.collections.CollectionUtils;
 import org.openecomp.core.utilities.file.FileContentHandler;
 import org.openecomp.sdc.common.utils.CommonUtil;
 import org.openecomp.sdc.logging.context.impl.MdcDataDebugMessage;
@@ -41,6 +42,7 @@
 import java.util.Collection;
 import java.util.HashSet;
 import java.util.List;
+import java.util.Optional;
 import java.util.Set;
 import java.util.stream.Collectors;
 
@@ -74,11 +76,15 @@
         for(EntitlementPoolEntity entitlementPoolEntity : entitlementPoolEntities){
           entitlementPoolEntity.setLimits(vendorLicenseFacade.listLimits(vlmId, vlmVersion,
               entitlementPoolEntity.getId(), user));
+          entitlementPoolEntity.setManufacturerReferenceNumber(featureGroupModel.
+              getEntityManufacturerReferenceNumber());
         }
         Set<LicenseKeyGroupEntity> licenseKeyGroupEntities = featureGroupModel.getLicenseKeyGroups();
         for(LicenseKeyGroupEntity licenseKeyGroupEntity : licenseKeyGroupEntities){
           licenseKeyGroupEntity.setLimits(vendorLicenseFacade.listLimits(vlmId, vlmVersion,
               licenseKeyGroupEntity.getId(), user));
+          licenseKeyGroupEntity.setManufacturerReferenceNumber(featureGroupModel.
+              getEntityManufacturerReferenceNumber());
         }
 
         featureGroupModel.setEntitlementPools(entitlementPoolEntities.stream().map(
@@ -109,18 +115,29 @@
     for (Version finalVersion : finalVersions) {
       Collection<EntitlementPoolEntity> coll = vendorLicenseFacade.listEntitlementPools(vlmId,
           finalVersion, user);
-      for(EntitlementPoolEntity entitlementPoolEntity : coll){
+      coll.stream().forEach( entitlementPoolEntity -> {
         entitlementPoolEntity.setLimits(vendorLicenseFacade.listLimits(vlmId, finalVersion,
             entitlementPoolEntity.getId(), user));
-      }
+        Optional<String> manufacturerReferenceNumber = getFeatureGroupManufactureRefNumber
+            (entitlementPoolEntity.getReferencingFeatureGroups(), vlmId, finalVersion, user);
+        manufacturerReferenceNumber.ifPresent(mrn -> entitlementPoolEntity
+            .setManufacturerReferenceNumber(mrn));
+      });
+
       entitlementPoolEntities.addAll(coll);
 
       Collection<LicenseKeyGroupEntity> coll2 = vendorLicenseFacade.listLicenseKeyGroups(vlmId,
           finalVersion, user);
-      for(LicenseKeyGroupEntity licenseKeyGroupEntity : coll2){
+
+      coll2.stream().forEach( licenseKeyGroupEntity -> {
         licenseKeyGroupEntity.setLimits(vendorLicenseFacade.listLimits(vlmId, finalVersion,
             licenseKeyGroupEntity.getId(), user));
-      }
+        Optional<String> manufacturerReferenceNumber = getFeatureGroupManufactureRefNumber
+            (licenseKeyGroupEntity.getReferencingFeatureGroups(), vlmId, finalVersion, user);
+        manufacturerReferenceNumber.ifPresent(mrn -> licenseKeyGroupEntity
+            .setManufacturerReferenceNumber(mrn));
+      });
+
       licenseKeyGroupEntities.addAll(coll2);
     }
 
@@ -138,6 +155,23 @@
     return vendorLicenseArtifact.toXml().getBytes();
   }
 
+  private static Optional<String> getFeatureGroupManufactureRefNumber(Set<String> featureGroupIds,
+         String vlmId, Version finalVersion, String user) {
+    String manufactureReferenceNumber = null;
+    if (CollectionUtils.isNotEmpty(featureGroupIds)) {
+      Object[] featureGroupIdsList = featureGroupIds.toArray();
+      if (featureGroupIdsList != null && featureGroupIdsList.length > 0) {
+        FeatureGroupEntity featureGroup =
+            vendorLicenseFacade.getFeatureGroup(new FeatureGroupEntity(vlmId, finalVersion,
+                featureGroupIdsList[0].toString()), user);
+        manufactureReferenceNumber = featureGroup != null ? featureGroup
+            .getManufacturerReferenceNumber() : null;
+      }
+    }
+    return manufactureReferenceNumber != null ? Optional.of(manufactureReferenceNumber) :
+        Optional.empty();
+  }
+
 
   /**
    * Create License Artifacts.
diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinEntitlementPoolEntityForVendorLicenseArtifact.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinEntitlementPoolEntityForVendorLicenseArtifact.java
index 936f4da..dc0db0d 100644
--- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinEntitlementPoolEntityForVendorLicenseArtifact.java
+++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinEntitlementPoolEntityForVendorLicenseArtifact.java
@@ -35,6 +35,7 @@
 import org.openecomp.sdc.vendorlicense.dao.types.xml.AggregationFunctionForXml;
 import org.openecomp.sdc.vendorlicense.dao.types.xml.EntitlementMetricForXml;
 import org.openecomp.sdc.vendorlicense.dao.types.xml.EntitlementTimeForXml;
+import org.openecomp.sdc.vendorlicense.dao.types.xml.OperationalScopeForXml;
 import org.openecomp.sdc.vendorlicense.dao.types.xml.ThresholdForXml;
 import org.openecomp.sdc.vendorlicense.dao.types.xml.LimitForXml;
 
@@ -64,10 +65,10 @@
   @JsonProperty(value = "version")
   abstract String getVersionForArtifact();
 
-  @JsonInclude(JsonInclude.Include.NON_NULL)
+  @JsonProperty(value = "start-date")
   abstract String getStartDate();
 
-  @JsonInclude(JsonInclude.Include.NON_NULL)
+  @JsonProperty(value = "expiry-date")
   abstract String getExpiryDate();
 
   @JsonIgnore
@@ -93,9 +94,8 @@
   @JsonIgnore
   abstract String getEntityType();
 
-  @JacksonXmlProperty(localName = "value")
-  @JacksonXmlElementWrapper(localName = "operational-scope")
-  abstract String getOperationalScopeForArtifact();
+  @JsonProperty(value = "operational-scope")
+  abstract OperationalScopeForXml getOperationalScopeForArtifact();
 
   @JsonIgnore
   abstract ChoiceOrOther<OperationalScope> getOperationalScope();
diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinEntitlementPoolEntityForVnfArtifact.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinEntitlementPoolEntityForVnfArtifact.java
index 1a29d5b..8a2d17d 100644
--- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinEntitlementPoolEntityForVnfArtifact.java
+++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinEntitlementPoolEntityForVnfArtifact.java
@@ -34,6 +34,7 @@
 import org.openecomp.sdc.vendorlicense.dao.types.xml.AggregationFunctionForXml;
 import org.openecomp.sdc.vendorlicense.dao.types.xml.EntitlementMetricForXml;
 import org.openecomp.sdc.vendorlicense.dao.types.xml.EntitlementTimeForXml;
+import org.openecomp.sdc.vendorlicense.dao.types.xml.OperationalScopeForXml;
 import org.openecomp.sdc.vendorlicense.dao.types.xml.ThresholdForXml;
 import org.openecomp.sdc.vendorlicense.dao.types.xml.LimitForXml;
 
@@ -74,10 +75,10 @@
   @JsonIgnore
   abstract float getThresholdValue();
 
-  @JsonInclude(JsonInclude.Include.NON_NULL)
+  @JsonProperty(value = "start-date")
   abstract String getStartDate();
 
-  @JsonInclude(JsonInclude.Include.NON_NULL)
+  @JsonProperty(value = "expiry-date")
   abstract String getExpiryDate();
 
   @JsonIgnore
@@ -92,9 +93,8 @@
   @JsonIgnore
   abstract String getEntityType();
 
-  @JacksonXmlProperty(isAttribute = false, localName = "value")
-  @JacksonXmlElementWrapper(localName = "operational-scope")
-  abstract String getOperationalScopeForArtifact();
+  @JsonProperty(value = "operational-scope")
+  abstract OperationalScopeForXml getOperationalScopeForArtifact();
 
   @JsonIgnore
   abstract ChoiceOrOther<OperationalScope> getOperationalScope();
diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinFeatureGroupModel.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinFeatureGroupModel.java
index 75beee4..b8c45ba 100644
--- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinFeatureGroupModel.java
+++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinFeatureGroupModel.java
@@ -41,9 +41,6 @@
   @JacksonXmlProperty(isAttribute = false, localName = "part-number")
   abstract String getEntityPartNumber();
 
-  @JacksonXmlProperty(isAttribute = false, localName = "manufacturer-reference-number")
-  abstract String getManufacturerReferenceNumber();
-
   @JacksonXmlProperty(isAttribute = false, localName = "feature-group-uuid")
   abstract String getEntityId();
 
@@ -60,5 +57,8 @@
   @JsonIgnore
   abstract String getEntityType();
 
+  @JsonIgnore
+  abstract String getEntityManufacturerReferenceNumber();
+
 
 }
diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinLicenseKeyGroupEntityForVendorLicenseArtifact.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinLicenseKeyGroupEntityForVendorLicenseArtifact.java
index 6238988..78bf531 100644
--- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinLicenseKeyGroupEntityForVendorLicenseArtifact.java
+++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinLicenseKeyGroupEntityForVendorLicenseArtifact.java
@@ -21,6 +21,7 @@
 package org.openecomp.sdc.vendorlicense.licenseartifacts.impl.types.mixins;
 
 import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonInclude;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper;
 import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
@@ -28,6 +29,8 @@
 import org.openecomp.sdc.vendorlicense.dao.types.LimitEntity;
 import org.openecomp.sdc.vendorlicense.dao.types.OperationalScope;
 import org.openecomp.sdc.vendorlicense.dao.types.xml.LicenseKeyTypeForXml;
+import org.openecomp.sdc.vendorlicense.dao.types.xml.OperationalScopeForXml;
+import org.openecomp.sdc.vendorlicense.dao.types.xml.ThresholdForXml;
 import org.openecomp.sdc.vendorlicense.dao.types.xml.LimitForXml;
 
 import java.util.Collection;
@@ -60,9 +63,8 @@
   @JsonIgnore
   abstract ChoiceOrOther<OperationalScope> getOperationalScope();
 
-  @JacksonXmlProperty(isAttribute = false, localName = "value")
-  @JacksonXmlElementWrapper(localName = "operational-scope")
-  abstract String getOperationalScopeForArtifact();
+  @JsonProperty(value = "operational-scope")
+  abstract OperationalScopeForXml getOperationalScopeForArtifact();
 
 
   @JsonIgnore
@@ -80,4 +82,19 @@
   @JsonIgnore
   abstract Collection<LimitEntity> getLimits();
 
+  @JsonProperty(value = "start-date")
+  abstract String getStartDate();
+
+  @JsonProperty(value = "expiry-date")
+  abstract String getExpiryDate();
+
+  @JsonProperty(value = "threshold-value")
+  abstract ThresholdForXml getThresholdForArtifact();
+
+  @JsonIgnore
+  abstract String getThresholdUnits();
+
+  @JsonIgnore
+  abstract float getThresholdValue();
+
 }
diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinLicenseKeyGroupEntityForVnfArtifact.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinLicenseKeyGroupEntityForVnfArtifact.java
index 80ae054..b25b93f 100644
--- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinLicenseKeyGroupEntityForVnfArtifact.java
+++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/licenseartifacts/impl/types/mixins/MixinLicenseKeyGroupEntityForVnfArtifact.java
@@ -21,6 +21,7 @@
 package org.openecomp.sdc.vendorlicense.licenseartifacts.impl.types.mixins;
 
 import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonInclude;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper;
 import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
@@ -29,6 +30,8 @@
 import org.openecomp.sdc.vendorlicense.dao.types.OperationalScope;
 import org.openecomp.sdc.vendorlicense.dao.types.xml.LicenseKeyTypeForXml;
 import org.openecomp.sdc.vendorlicense.dao.types.xml.LimitForXml;
+import org.openecomp.sdc.vendorlicense.dao.types.xml.OperationalScopeForXml;
+import org.openecomp.sdc.vendorlicense.dao.types.xml.ThresholdForXml;
 
 import java.util.Collection;
 import java.util.Set;
@@ -37,6 +40,9 @@
   @JsonIgnore
   abstract String getId();
 
+  @JsonProperty(value = "manufacturer-reference-number")
+  abstract String getManufacturerReferenceNumber();
+
   @JsonIgnore
   abstract Set<String> getReferencingFeatureGroups();
 
@@ -63,9 +69,8 @@
   @JsonIgnore
   abstract ChoiceOrOther<OperationalScope> getOperationalScope();
 
-  @JacksonXmlProperty(isAttribute = false, localName = "value")
-  @JacksonXmlElementWrapper(localName = "operational-scope")
-  abstract String getOperationalScopeForArtifact();
+  @JsonProperty(value = "operational-scope")
+  abstract OperationalScopeForXml getOperationalScopeForArtifact();
 
 
   @JsonIgnore
@@ -74,6 +79,8 @@
   @JsonIgnore
   abstract String getVersionableId();
 
+  @JsonProperty(value = "threshold-value")
+  abstract ThresholdForXml getThresholdForArtifact();
   @JsonProperty(value = "sp-limits")
   abstract LimitForXml getSPLimits();
 
@@ -83,4 +90,15 @@
   @JsonIgnore
   abstract Collection<LimitEntity> getLimits();
 
+  @JsonProperty(value = "start-date")
+  abstract String getStartDate();
+
+  @JsonProperty(value = "expiry-date")
+  abstract String getExpiryDate();
+
+  @JsonIgnore
+  abstract String getThresholdUnits();
+
+  @JsonIgnore
+  abstract float getThresholdValue();
 }
diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/pom.xml.versionsBackup
deleted file mode 100644
index 0b6ebb6..0000000
--- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/pom.xml.versionsBackup
+++ /dev/null
@@ -1,23 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <name>openecomp-sdc-vendor-license-lib</name>
-    <artifactId>openecomp-sdc-vendor-license-lib</artifactId>
-
-    <packaging>pom</packaging>
-    <parent>
-        <artifactId>openecomp-sdc-lib</artifactId>
-        <groupId>org.openecomp.sdc</groupId>
-        <version>1.0-SNAPSHOT</version>
-    </parent>
-
-    <modules>
-        <module>openecomp-sdc-vendor-license-api</module>
-        <module>openecomp-sdc-vendor-license-core</module>
-    </modules>
-
-    <dependencies>
-
-    </dependencies>
-</project>
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/pom.xml.versionsBackup
deleted file mode 100644
index 67f6a45..0000000
--- a/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/pom.xml.versionsBackup
+++ /dev/null
@@ -1,67 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xmlns="http://maven.apache.org/POM/4.0.0"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <parent>
-        <groupId>org.openecomp.sdc</groupId>
-        <artifactId>openecomp-sdc-vendor-software-product-lib</artifactId>
-        <version>1.0-SNAPSHOT</version>
-    </parent>
-
-    <artifactId>openecomp-sdc-vendor-software-product-api</artifactId>
-    <version>1.0-SNAPSHOT</version>
-
-
-    <dependencies>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-core-lib</artifactId>
-            <type>pom</type>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-facade-core</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-nosqldb-core</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-versioning-core</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-translator-core</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-enrichment-api</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-model-core</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.freemarker</groupId>
-            <artifactId>freemarker</artifactId>
-            <version>2.3.25-incubating</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-config-lib</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-    </dependencies>
-
-
-</project>
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/VendorSoftwareProductConstants.java b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/VendorSoftwareProductConstants.java
index 42dd008..8010c40 100644
--- a/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/VendorSoftwareProductConstants.java
+++ b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/VendorSoftwareProductConstants.java
@@ -29,7 +29,7 @@
   public static final String INFORMATION_ARTIFACT_NAME = "VSP_%s_Information.txt";
     public static final String UNSUPPORTED_OPERATION_ERROR =
             "An error has occurred: Unsupported operation for 1707 release.";
-
+  public static final String NAME_PATTERN = "^[a-zA-Z0-9_]*$";
 
   public final class UniqueValues {
     public static final String VENDOR_SOFTWARE_PRODUCT_NAME = "Vendor Software Product name";
diff --git a/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/services/composition/CompositionEntityDataManager.java b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/services/composition/CompositionEntityDataManager.java
index 6c636fd..b77012e 100644
--- a/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/services/composition/CompositionEntityDataManager.java
+++ b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-api/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/services/composition/CompositionEntityDataManager.java
@@ -87,7 +87,5 @@
       componentId);
   public void saveImagesByComponent(String vspId, Version version, Component component, String
       componentId);
-  public void saveDeploymentFlavors(String vspId, Version version,
-                                    CompositionData compositionData);
 
 }
diff --git a/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/pom.xml b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/pom.xml
index 343f4ae..afee456 100644
--- a/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/pom.xml
+++ b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/pom.xml
@@ -116,6 +116,16 @@
             <artifactId>openecomp-tosca-datatype</artifactId>
             <version>${openecomp.sdc.common.version}</version>
         </dependency>
+        <dependency>
+            <groupId>org.openecomp.sdc</groupId>
+            <artifactId>openecomp-sdc-tosca-generator-api</artifactId>
+            <version>1.1.0-SNAPSHOT</version>
+        </dependency>
+        <dependency>
+            <groupId>org.openecomp.sdc</groupId>
+            <artifactId>openecomp-sdc-vendor-license-api</artifactId>
+            <version>1.1.0-SNAPSHOT</version>
+        </dependency>
     </dependencies>
 
     <build>
diff --git a/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/pom.xml.versionsBackup
deleted file mode 100644
index 634e087..0000000
--- a/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/pom.xml.versionsBackup
+++ /dev/null
@@ -1,108 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xmlns="http://maven.apache.org/POM/4.0.0"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <artifactId>openecomp-sdc-vendor-software-product-core</artifactId>
-    <version>1.0-SNAPSHOT</version>
-
-    <parent>
-        <groupId>org.openecomp.sdc</groupId>
-        <artifactId>openecomp-sdc-vendor-software-product-lib</artifactId>
-        <version>1.0-SNAPSHOT</version>
-    </parent>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-vendor-software-product-api</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-nosqldb-api</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.freemarker</groupId>
-            <artifactId>freemarker</artifactId>
-            <version>2.3.23</version>
-        </dependency>
-        <dependency>
-            <groupId>org.testng</groupId>
-            <artifactId>testng</artifactId>
-            <version>${testng.version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-config-lib</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-model-impl</artifactId>
-            <version>1.0-SNAPSHOT</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.xmlgraphics</groupId>
-            <artifactId>fop</artifactId>
-            <version>2.1</version>
-        </dependency>
-        <dependency>
-            <groupId>com.fasterxml.jackson.dataformat</groupId>
-            <artifactId>jackson-dataformat-xml</artifactId>
-            <version>2.7.4</version>
-        </dependency>
-        <dependency>
-            <groupId>commons-io</groupId>
-            <artifactId>commons-io</artifactId>
-            <version>2.5</version>
-        </dependency>
-        <dependency>
-            <groupId>org.mockito</groupId>
-            <artifactId>mockito-all</artifactId>
-            <version>1.10.19</version>
-        </dependency>
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <version>4.12</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc.common</groupId>
-            <artifactId>openecomp-configuration-management-core</artifactId>
-            <version>1707.0.0-SNAPSHOT</version>
-            <scope>runtime</scope>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.slf4j</groupId>
-                    <artifactId>slf4j-log4j12</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc.common</groupId>
-            <artifactId>openecomp-configuration-management-api</artifactId>
-            <version>1707.0.0-SNAPSHOT</version>
-        </dependency>
-    </dependencies>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-surefire-plugin</artifactId>
-                <version>2.19.1</version>
-                <configuration>
-                    <useSystemClassLoader>false</useSystemClassLoader>
-                    <redirectTestOutputToFile>true</redirectTestOutputToFile>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
-
-</project>
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/VendorSoftwareProductErrorCodes.java b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/VendorSoftwareProductErrorCodes.java
index 5284b9a..d87059e 100644
--- a/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/VendorSoftwareProductErrorCodes.java
+++ b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/errors/VendorSoftwareProductErrorCodes.java
@@ -64,6 +64,7 @@
       "VSP_ONBOARD_METHOD_UPDATE_NOT_ALLOWED";
 
   public static final String DUPLICATE_NIC_NAME_NOT_ALLOWED = "DUPLICATE_NIC_NAME_NOT_ALLOWED";
+  public static final String NIC_NAME_FORMAT_NOT_ALLOWED = "NIC_NAME_FORMAT_NOT_ALLOWED";
 
   public static final String NULL_NETWORKID_NOT_ALLOWED = "NULL_NETWORKID_NOT_ALLOWED";
 
@@ -102,6 +103,7 @@
       ADD_IMAGE_NOT_ALLOWED_IN_HEAT_ONBOARDING = "ADD_IMAGE_NOT_ALLOWED_IN_HEAT_ONBOARDING";
 
   public static final String DUPLICATE_IMAGE_NAME_NOT_ALLOWED = "DUPLICATE_IMAGE_NAME_NOT_ALLOWED";
+  public static final String IMAGE_NAME_FORMAT_NOT_ALLOWED = "IMAGE_NAME_FORMAT_NOT_ALLOWED";
   public static final String VFC_IMAGE_INVALID_FORMAT = "VFC_IMAGE_INVALID_FORMAT";
   public static final String FEATURE_GROUP_NOT_EXIST_FOR_VSP = "FEATURE_GROUP_NOT_EXIST_FOR_VSP";
 
@@ -115,8 +117,11 @@
       = "SAME_VFC_ASSOCIATION_MORE_THAN_ONCE_NOT_ALLOWED";
   public static final String DUPLICATE_DEPLOYMENT_FLAVOR_MODEL_NOT_ALLOWED
       = "DUPLICATE_DEPLOYMENT_FLAVOR_MODEL_NOT_ALLOWED";
+  public static final String DEPLOYMENT_FLAVOR_NAME_FORMAT_NOT_ALLOWED =
+          "DEPLOYMENT_FLAVOR_NAME_FORMAT_NOT_ALLOWED";
   public static final String INVALID_COMPUTE_FLAVOR_ID = "INVALID_COMPUTE_FLAVOR_ID";
   public static final String DUPLICATE_COMPUTE_NAME_NOT_ALLOWED = "DUPLICATE_COMPUTE_NAME_NOT_ALLOWED";
+  public static final String COMPUTE_NAME_FORMAT_NOT_ALLOWED = "COMPUTE_NAME_FORMAT_NOT_ALLOWED";
 
   public static final String DELETE_IMAGE_NOT_ALLOWED = "DELETE_IMAGE_NOT_ALLOWED";
   public static final String UPDATE_IMAGE_NOT_ALLOWED = "UPDATE_IMAGE_NOT_ALLOWED";
diff --git a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/utils/ManualVspDataCollectionService.java b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/services/ManualVspDataCollectionService.java
similarity index 70%
rename from openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/utils/ManualVspDataCollectionService.java
rename to openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/services/ManualVspDataCollectionService.java
index 981bfe9..1499bcc 100644
--- a/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/utils/ManualVspDataCollectionService.java
+++ b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/services/ManualVspDataCollectionService.java
@@ -1,35 +1,40 @@
-package org.openecomp.sdc.vendorsoftwareproduct.utils;
+package org.openecomp.sdc.vendorsoftwareproduct.services;
 
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang.StringUtils;
 import org.openecomp.core.utilities.json.JsonUtil;
+import org.openecomp.sdc.datatypes.error.ErrorLevel;
 import org.openecomp.sdc.generator.datatypes.tosca.ComputeFlavor;
 import org.openecomp.sdc.generator.datatypes.tosca.DeploymentFlavorModel;
 import org.openecomp.sdc.generator.datatypes.tosca.LicenseFlavor;
 import org.openecomp.sdc.generator.datatypes.tosca.MultiFlavorVfcImage;
 import org.openecomp.sdc.generator.datatypes.tosca.VendorInfo;
+import org.openecomp.sdc.logging.context.impl.MdcDataErrorMessage;
+import org.openecomp.sdc.logging.types.LoggerConstants;
+import org.openecomp.sdc.logging.types.LoggerErrorCode;
+import org.openecomp.sdc.logging.types.LoggerTragetServiceName;
 import org.openecomp.sdc.vendorlicense.dao.types.FeatureGroupEntity;
 import org.openecomp.sdc.vendorlicense.dao.types.FeatureGroupModel;
 import org.openecomp.sdc.vendorlicense.facade.VendorLicenseFacade;
 import org.openecomp.sdc.vendorlicense.facade.VendorLicenseFacadeFactory;
-import org.openecomp.sdc.vendorsoftwareproduct.ComponentManager;
-import org.openecomp.sdc.vendorsoftwareproduct.ComponentManagerFactory;
-import org.openecomp.sdc.vendorsoftwareproduct.ComputeManager;
-import org.openecomp.sdc.vendorsoftwareproduct.ComputeManagerFactory;
-import org.openecomp.sdc.vendorsoftwareproduct.DeploymentFlavorManager;
-import org.openecomp.sdc.vendorsoftwareproduct.DeploymentFlavorManagerFactory;
-import org.openecomp.sdc.vendorsoftwareproduct.ImageManager;
-import org.openecomp.sdc.vendorsoftwareproduct.ImageManagerFactory;
-import org.openecomp.sdc.vendorsoftwareproduct.NicManager;
-import org.openecomp.sdc.vendorsoftwareproduct.NicManagerFactory;
-import org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductManager;
-import org.openecomp.sdc.vendorsoftwareproduct.VspManagerFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ComponentDaoFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ComputeDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ComputeDaoFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ImageDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.ImageDaoFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.NicDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.NicDaoFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductDaoFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDao;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.VendorSoftwareProductInfoDaoFactory;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity;
+import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComputeEntity;
 import org.openecomp.sdc.vendorsoftwareproduct.dao.type.DeploymentFlavorEntity;
 import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ImageEntity;
 import org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity;
 import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspDetails;
-import org.openecomp.sdc.vendorsoftwareproduct.types.CompositionEntityResponse;
-import org.openecomp.sdc.vendorsoftwareproduct.types.QuestionnaireResponse;
 import org.openecomp.sdc.vendorsoftwareproduct.types.composition.ComponentComputeAssociation;
 import org.openecomp.sdc.vendorsoftwareproduct.types.composition.ComponentData;
 import org.openecomp.sdc.vendorsoftwareproduct.types.composition.DeploymentFlavor;
@@ -50,18 +55,19 @@
 
 public class ManualVspDataCollectionService {
 
-  private static final DeploymentFlavorManager deploymentFlavorManager =
-      DeploymentFlavorManagerFactory.getInstance().createInterface();
-  private static final ComputeManager computeManager =
-      ComputeManagerFactory.getInstance().createInterface();
-  private static final ImageManager imageManager =
-      ImageManagerFactory.getInstance().createInterface();
-  private static final ComponentManager componentManager =
-      ComponentManagerFactory.getInstance().createInterface();
-  private static final VendorSoftwareProductManager vendorSoftwareProductManager =
-      VspManagerFactory.getInstance().createInterface();
-  private static final NicManager nicManager =
-      NicManagerFactory.getInstance().createInterface();
+  private static final VendorSoftwareProductDao vendorSoftwareProductDao =
+      VendorSoftwareProductDaoFactory.getInstance().createInterface();
+  private static final VendorSoftwareProductInfoDao vendorSoftwareProductInfoDao =
+      VendorSoftwareProductInfoDaoFactory.getInstance().createInterface();
+  private static final ComputeDao computeDao =
+      ComputeDaoFactory.getInstance().createInterface();
+  private static final ImageDao imageDao =
+      ImageDaoFactory.getInstance().createInterface();
+  private static final ComponentDao componentDao =
+      ComponentDaoFactory.getInstance().createInterface();
+
+  private static final NicDao nicDao =
+      NicDaoFactory.getInstance().createInterface();
   private static final VendorLicenseFacade vendorLicenseFacade =
       VendorLicenseFacadeFactory.getInstance().createInterface();
 
@@ -76,7 +82,7 @@
    */
   public Optional<String> getReleaseVendor(String vspId, Version version, String user) {
     String vendorName = null;
-    VspDetails vspDetails = vendorSoftwareProductManager.getVsp(vspId, version, user);
+    VspDetails vspDetails = vendorSoftwareProductInfoDao.get(new VspDetails(vspId, version));
     if (Objects.nonNull(vspDetails)) {
       vendorName = vspDetails.getVendorName();
     }
@@ -95,13 +101,13 @@
                                                               String user) {
     Map<String, DeploymentFlavorModel> allowedFlavors = new HashMap<>();
     Collection<DeploymentFlavorEntity> deploymentFlavorEntities =
-        deploymentFlavorManager.listDeploymentFlavors(vspId, version, user);
+        vendorSoftwareProductDao.listDeploymentFlavors(vspId, version);
     if (CollectionUtils.isNotEmpty(deploymentFlavorEntities)) {
       for (DeploymentFlavorEntity deploymentFlavorEntity : deploymentFlavorEntities) {
         DeploymentFlavor deploymentFlavorCompositionData =
             deploymentFlavorEntity.getDeploymentFlavorCompositionData();
 
-        VspDetails vspDetails = vendorSoftwareProductManager.getVsp(vspId, version, user);
+        VspDetails vspDetails = vendorSoftwareProductInfoDao.get(new VspDetails(vspId, version));
         String vspVlmId;
         Version vlmVersion;
         if (Objects.nonNull(vspDetails)) {
@@ -123,8 +129,9 @@
                 user);
             partNumber.ifPresent(deploymentFlavorModel::setSp_part_number);
             //Gather and set Vendor Info
-            Optional<VendorInfo> vendorInfo = getVendorInfo(vspVlmId, vlmVersion, featureGroupId,
-                user);
+            String vendorModel = deploymentFlavorCompositionData.getModel();
+            Optional<VendorInfo> vendorInfo = getVendorInfo(vspVlmId, vendorModel, vlmVersion,
+                featureGroupId, user);
             vendorInfo.ifPresent(deploymentFlavorModel::setVendor_info);
             //Gather and set Compute info
             List<ComponentComputeAssociation> componentComputeAssociations =
@@ -161,7 +168,7 @@
                                                                       String user) {
     Map<String, List<MultiFlavorVfcImage>> vspComponentImages = new HashMap<>();
     Collection<DeploymentFlavorEntity> deploymentFlavorEntities =
-        deploymentFlavorManager.listDeploymentFlavors(vspId, version, user);
+        vendorSoftwareProductDao.listDeploymentFlavors(vspId, version);
     for (DeploymentFlavorEntity deploymentFlavorEntity : deploymentFlavorEntities) {
       DeploymentFlavor deploymentFlavorCompositionData =
           deploymentFlavorEntity.getDeploymentFlavorCompositionData();
@@ -194,7 +201,7 @@
   public Map<String, String> getVspComponents(String vspId, Version version, String user) {
     Map<String, String> componentIdNameMap = new HashMap<>();
     Collection<DeploymentFlavorEntity> deploymentFlavorEntities =
-        deploymentFlavorManager.listDeploymentFlavors(vspId, version, user);
+        vendorSoftwareProductDao.listDeploymentFlavors(vspId, version);
     for (DeploymentFlavorEntity deploymentFlavorEntity : deploymentFlavorEntities) {
       DeploymentFlavor deploymentFlavorCompositionData =
           deploymentFlavorEntity.getDeploymentFlavorCompositionData();
@@ -224,7 +231,7 @@
   public Map<String, List<Nic>> getVspComponentNics(String vspId, Version version, String user) {
     Map<String, List<Nic>> vspComponentNics = new HashMap<>();
     Collection<DeploymentFlavorEntity> deploymentFlavorEntities =
-        deploymentFlavorManager.listDeploymentFlavors(vspId, version, user);
+        vendorSoftwareProductDao.listDeploymentFlavors(vspId, version);
     if (CollectionUtils.isNotEmpty(deploymentFlavorEntities)) {
       for (DeploymentFlavorEntity deploymentFlavorEntity : deploymentFlavorEntities) {
         DeploymentFlavor deploymentFlavorCompositionData =
@@ -251,15 +258,14 @@
   private List<Nic> getComponentNics(String vspId, Version version, String componentId,
                                      String user) {
     List<Nic> componentNics = new ArrayList<>();
-    Collection<NicEntity> nics = nicManager.listNics(vspId, version, componentId,  user);
+    Collection<NicEntity> nics = nicDao.list(new NicEntity(vspId, version, componentId, null));
     if (Objects.nonNull(nics)) {
-      for (NicEntity nicEntity : nics) {
-        String nicId = nicEntity.getId();
-        CompositionEntityResponse<Nic> nicCompositionEntityResponse =
-            nicManager.getNic(vspId, version, componentId, nicId, user);
-        if (Objects.nonNull(nicCompositionEntityResponse)
-            && Objects.nonNull(nicCompositionEntityResponse.getData())) {
-          componentNics.add(nicCompositionEntityResponse.getData());
+      for (NicEntity nic : nics) {
+        String nicId = nic.getId();
+        NicEntity nicEntity = nicDao.get(new NicEntity(vspId, version, componentId, nicId));
+        if (Objects.nonNull(nicEntity)
+            && Objects.nonNull(nicEntity.getCompositionData())) {
+          componentNics.add(nicEntity.getNicCompositionData());
         }
       }
     }
@@ -281,7 +287,7 @@
     return Optional.empty();
   }
 
-  private Optional<VendorInfo> getVendorInfo(String vlmId, Version version,
+  private Optional<VendorInfo> getVendorInfo(String vlmId, String vendorModel, Version version,
                                              String featureGroupId, String user) {
     VendorInfo vendorInfo = null;
     FeatureGroupModel featureGroup = getFeatureGroup(vlmId, version, featureGroupId, user);
@@ -289,7 +295,7 @@
       //Process Feature group to get Manufacturer ref no.
       String manufacturerReferenceNumber = featureGroup.getEntityManufacturerReferenceNumber();
       vendorInfo = new VendorInfo();
-      vendorInfo.setVendor_model(vlmId);
+      vendorInfo.setVendor_model(vendorModel);
       if (Objects.nonNull(manufacturerReferenceNumber)) {
         vendorInfo.setManufacturer_reference_number(manufacturerReferenceNumber);
       }
@@ -301,21 +307,29 @@
                                                    String componentId, String computeFlavorId,
                                                    String user) {
     ComputeFlavor computeFlavor = null;
-    QuestionnaireResponse computeQuestionnaire;
+    ComputeEntity computeQuestionnaire = null;
     try {
-      computeQuestionnaire = computeManager.getComputeQuestionnaire(vspId, version, componentId,
-          computeFlavorId, user);
+      computeQuestionnaire = computeDao.getQuestionnaireData(vspId, version, componentId,
+          computeFlavorId);
     } catch (Exception ex) {
       computeQuestionnaire = null;
+      MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_API,
+          LoggerTragetServiceName.COLLECT_MANUAL_VSP_TOSCA_DATA, ErrorLevel.INFO.name(),
+          LoggerErrorCode.DATA_ERROR.getErrorCode(), "Failed to get compute questionnaire : "
+              + ex.getMessage());
     }
     if (Objects.nonNull(computeQuestionnaire)) {
-      String computeQuestionnaireData = computeQuestionnaire.getData();
+      String computeQuestionnaireData = computeQuestionnaire.getQuestionnaireData();
       if (Objects.nonNull(computeQuestionnaireData)) {
         Compute compute;
         try {
           compute = JsonUtil.json2Object(computeQuestionnaireData, Compute.class);
         } catch (Exception ex) {
           compute = null;
+          MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_API,
+              LoggerTragetServiceName.COLLECT_MANUAL_VSP_TOSCA_DATA, ErrorLevel.INFO.name(),
+              LoggerErrorCode.DATA_ERROR.getErrorCode(), "Unable to parse compute questionnaire : "
+                  + ex.getMessage());
         }
         if (Objects.nonNull(compute.getVmSizing())) {
           computeFlavor = new ComputeFlavor();
@@ -323,10 +337,10 @@
             computeFlavor.setNum_cpus(compute.getVmSizing().getNumOfCPUs());
           }
           if (Objects.nonNull(compute.getVmSizing().getFileSystemSizeGB())) {
-            computeFlavor.setDisk_size(compute.getVmSizing().getFileSystemSizeGB() + "GB");
+            computeFlavor.setDisk_size(compute.getVmSizing().getFileSystemSizeGB() + " GB");
           }
           if (Objects.nonNull(compute.getVmSizing().getMemoryRAM())) {
-            computeFlavor.setMem_size(compute.getVmSizing().getMemoryRAM() + "GB");
+            computeFlavor.setMem_size(compute.getVmSizing().getMemoryRAM());
           }
         }
       }
@@ -345,74 +359,63 @@
 
   private Optional<String> getComponentName(String vspId, Version version, String componentId,
                                             String user) {
-    CompositionEntityResponse<ComponentData> component =
-        componentManager.getComponent(vspId, version, componentId, user);
-    if (Objects.nonNull(component.getData())) {
-      return Optional.ofNullable(component.getData().getDisplayName());
+
+    ComponentEntity componentEntity =
+        componentDao.get(new ComponentEntity(vspId, version, componentId));
+    if (Objects.nonNull(componentEntity)
+        && Objects.nonNull(componentEntity.getComponentCompositionData())) {
+      ComponentData componentCompositionData = componentEntity.getComponentCompositionData();
+      return Optional.ofNullable(componentCompositionData.getDisplayName());
     }
     return Optional.empty();
   }
 
   private List<MultiFlavorVfcImage> getComponentImages(String vspId, Version version,
                                                        String componentId, String user) {
-    List<MultiFlavorVfcImage> componentImages = new ArrayList<>();
+    List<MultiFlavorVfcImage> multiFlavorVfcImages = new ArrayList<>();
     MultiFlavorVfcImage multiFlavorVfcImage = null;
-    Collection<ImageEntity> imageEntities =
-        imageManager.listImages(vspId, version, componentId, user);
-    if (Objects.nonNull(imageEntities)) {
-      for (ImageEntity imageEntity : imageEntities) {
-        String imageId = imageEntity.getId();
-        QuestionnaireResponse imageQuestionnaire =
-            imageManager.getImageQuestionnaire(vspId, version, componentId, imageId, user);
-        CompositionEntityResponse<Image> imageCompositionData =
-            imageManager.getImage(vspId, version, componentId, imageId, user);
-        if (Objects.nonNull(imageQuestionnaire)
-            && Objects.nonNull(imageQuestionnaire.getData())
+    Collection<ImageEntity> componentImages =
+        vendorSoftwareProductDao.listImages(vspId, version, componentId);
+    if (Objects.nonNull(componentImages)) {
+      for (ImageEntity componentImage : componentImages) {
+        String imageId = componentImage.getId();
+        ImageEntity imageEntity = vendorSoftwareProductDao.getImage(vspId, version, componentId,
+            imageId);
+        ImageEntity imageQuestionnaireDataEntity = imageDao.getQuestionnaireData(vspId, version,
+            componentId, imageId);
+        Image imageCompositionData = imageEntity.getImageCompositionData();
+        if (Objects.nonNull(imageEntity)
+            && Objects.nonNull(imageQuestionnaireDataEntity)
             && Objects.nonNull(imageCompositionData)) {
           ImageDetails imageDetails;
           try {
-            imageDetails = JsonUtil.json2Object(imageQuestionnaire.getData(),
-                ImageDetails.class);
+            imageDetails = JsonUtil.json2Object(imageQuestionnaireDataEntity
+                .getQuestionnaireData(), ImageDetails.class);
           } catch (Exception ex) {
             imageDetails = null;
+            MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_API,
+                LoggerTragetServiceName.COLLECT_MANUAL_VSP_TOSCA_DATA, ErrorLevel.INFO.name(),
+                LoggerErrorCode.DATA_ERROR.getErrorCode(), "Unable to parse image questionnaire : "
+                    + ex.getMessage());
           }
           if (Objects.nonNull(imageDetails)
               && Objects.nonNull(imageDetails.getVersion())) {
             //Image version is used as a key for the image block
             //So excluding the population if questionnaire data is absent or invalid
             multiFlavorVfcImage = new MultiFlavorVfcImage();
-            Image image = imageCompositionData.getData();
-            Optional<String> toscaImageFileName = getToscaImageFileName(image, imageDetails);
-            toscaImageFileName.ifPresent(multiFlavorVfcImage::setFile_name);
             multiFlavorVfcImage.setSoftware_version(imageDetails.getVersion());
+            if (Objects.nonNull(imageCompositionData.getFileName())) {
+              multiFlavorVfcImage.setFile_name(imageCompositionData.getFileName());
+            }
             if (Objects.nonNull(imageDetails.getMd5())) {
               multiFlavorVfcImage.setFile_hash(imageDetails.getMd5());
             }
             multiFlavorVfcImage.setFile_hash_type("md5");
-            componentImages.add(multiFlavorVfcImage);
+            multiFlavorVfcImages.add(multiFlavorVfcImage);
           }
         }
       }
     }
-    return componentImages;
-  }
-
-  private Optional<String> getToscaImageFileName(Image image, ImageDetails imageDetails) {
-    String toscaImageFileName = null;
-    StringBuilder builder = new StringBuilder();
-    if (Objects.nonNull(image.getFileName())) {
-      builder.append(image.getFileName());
-      builder.append("-");
-      builder.append(imageDetails.getVersion());
-      if (Objects.nonNull(imageDetails.getFormat())) {
-        builder.append(".");
-        builder.append(imageDetails.getFormat());
-      }
-    }
-    toscaImageFileName = builder.toString();
-    if (toscaImageFileName.isEmpty()) {
-      return Optional.empty();
-    }
-    return Optional.ofNullable(toscaImageFileName);
+    return multiFlavorVfcImages;
   }
 }
diff --git a/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/services/impl/composition/CompositionDataExtractorImpl.java b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/services/impl/composition/CompositionDataExtractorImpl.java
index 6b55ffc..a16fea1 100644
--- a/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/services/impl/composition/CompositionDataExtractorImpl.java
+++ b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/services/impl/composition/CompositionDataExtractorImpl.java
@@ -338,7 +338,7 @@
         if (obj instanceof String) {
           images.add((String) obj);
         } else {
-          HashMap<String,String> objMap = new ObjectMapper().convertValue(obj,HashMap.class);
+          Map<String,String> objMap = new ObjectMapper().convertValue(obj,Map.class);
           images.add(getInputs(toscaServiceModel,objMap.get("get_input")));
         }
       }
@@ -364,7 +364,7 @@
         if (obj instanceof String) {
           computes.add((String) obj);
         } else {
-          HashMap<String, String> objMap = new ObjectMapper().convertValue(obj, HashMap.class);
+          Map<String, String> objMap = new ObjectMapper().convertValue(obj, Map.class);
           computes.add(getInputs(toscaServiceModel, objMap.get("get_input")));
         }
       }
@@ -387,7 +387,13 @@
       for (Map.Entry<String, ParameterDefinition> inputEntry : serviceTemplate
           .getTopology_template().getInputs().entrySet()) {
         if (inputEntry.getKey().equals(inputValue)) {
-          return (String)inputEntry.getValue().get_default();
+          String value;
+          try {
+            value= (String) inputEntry.getValue().get_default();
+          } catch (Exception e) {
+            value = inputEntry.getValue().get_default().toString();
+          }
+        return value;
         }
       }
     }
diff --git a/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/services/impl/composition/CompositionEntityDataManagerImpl.java b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/services/impl/composition/CompositionEntityDataManagerImpl.java
index 71f5fa1..7d5d57dc 100644
--- a/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/services/impl/composition/CompositionEntityDataManagerImpl.java
+++ b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/openecomp-sdc-vendor-software-product-core/src/main/java/org/openecomp/sdc/vendorsoftwareproduct/services/impl/composition/CompositionEntityDataManagerImpl.java
@@ -224,7 +224,6 @@
 
     Map<String, String> networkIdByName = saveNetworks(vspId, version, compositionData);
     saveComponents(vspId, version, compositionData, networkIdByName);
-    saveDeploymentFlavors(vspId, version, compositionData);
 
     mdcDataDebugMessage.debugExitMessage(null);
   }
@@ -688,38 +687,4 @@
     }
   }
 
-  public void saveDeploymentFlavors(String vspId, Version version,
-                                    CompositionData compositionData) {
-
-    mdcDataDebugMessage.debugEntryMessage(null, null);
-
-    if (CollectionUtils.isNotEmpty(compositionData.getComponents())) {
-      DeploymentFlavorEntity deploymentFlavorEntity = new DeploymentFlavorEntity(vspId, version,
-          null);
-      DeploymentFlavor deploymentFlavor = new DeploymentFlavor();
-      VspDetails vendorSoftwareProductInfo =
-          vspInfoDao.get(new VspDetails(vspId, version));
-      if (vendorSoftwareProductInfo.getName() != null) {
-        deploymentFlavor.setModel(vendorSoftwareProductInfo.getName());
-        List<ComponentComputeAssociation> componentComputeAssociationList = new ArrayList<>();
-        Collection<ComputeEntity> computes= vendorSoftwareProductDao.listComputesByVsp(vspId,
-            version);
-        for (ComputeEntity compute : computes) {
-          ComponentComputeAssociation componentComputeAssociation = new
-              ComponentComputeAssociation();
-          if (compute.getComponentId() != null && compute.getId() != null){
-            componentComputeAssociation.setComponentId(compute.getComponentId());
-            componentComputeAssociation.setComputeFlavorId(compute.getId());
-            componentComputeAssociationList.add(componentComputeAssociation);
-          }
-        }
-        deploymentFlavor.setComponentComputeAssociations(componentComputeAssociationList);
-      }
-      deploymentFlavorEntity.setDeploymentFlavorCompositionData(deploymentFlavor);
-      createDeploymentFlavor(deploymentFlavorEntity);
-    }
-
-    mdcDataDebugMessage.debugExitMessage(null, null);
-  }
-
 }
diff --git a/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/pom.xml.versionsBackup
deleted file mode 100644
index a1ee8d3..0000000
--- a/openecomp-be/lib/openecomp-sdc-vendor-software-product-lib/pom.xml.versionsBackup
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xmlns="http://maven.apache.org/POM/4.0.0"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <artifactId>openecomp-sdc-vendor-software-product-lib</artifactId>
-    <packaging>pom</packaging>
-
-    <parent>
-        <groupId>org.openecomp.sdc</groupId>
-        <artifactId>openecomp-sdc-lib</artifactId>
-        <version>1.0-SNAPSHOT</version>
-    </parent>
-
-
-    <modules>
-        <module>openecomp-sdc-vendor-software-product-api</module>
-        <module>openecomp-sdc-vendor-software-product-core</module>
-    </modules>
-
-
-</project>
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-versioning-lib/openecomp-sdc-versioning-api/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-sdc-versioning-lib/openecomp-sdc-versioning-api/pom.xml.versionsBackup
deleted file mode 100644
index 3c9a34a..0000000
--- a/openecomp-be/lib/openecomp-sdc-versioning-lib/openecomp-sdc-versioning-api/pom.xml.versionsBackup
+++ /dev/null
@@ -1,75 +0,0 @@
-<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xmlns="http://maven.apache.org/POM/4.0.0"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <name>openecomp-sdc-versioning-api</name>
-    <artifactId>openecomp-sdc-versioning-api</artifactId>
-    <parent>
-        <groupId>org.openecomp.sdc</groupId>
-        <artifactId>openecomp-sdc-lib</artifactId>
-        <version>1.0-SNAPSHOT</version>
-        <relativePath>../..</relativePath>
-    </parent>
-    <dependencies>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-facade-core</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-facade-api</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-nosqldb-core</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.hibernate</groupId>
-            <artifactId>hibernate-validator</artifactId>
-            <version>${hibernate.validator.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>javax.el</groupId>
-            <artifactId>javax.el-api</artifactId>
-            <version>${javax.el-api.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.glassfish.web</groupId>
-            <artifactId>javax.el</artifactId>
-            <version>2.2.4</version>
-        </dependency>
-        <dependency>
-            <groupId>org.mockito</groupId>
-            <artifactId>mockito-all</artifactId>
-            <scope>test</scope>
-            <version>1.10.19</version>
-        </dependency>
-        <dependency>
-            <groupId>org.testng</groupId>
-            <artifactId>testng</artifactId>
-            <scope>test</scope>
-            <version>6.8.5</version>
-            <exclusions>
-                <exclusion>
-                    <artifactId>snakeyaml</artifactId>
-                    <groupId>org.yaml</groupId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <scope>test</scope>
-            <version>4.11</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-logging-core</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-    </dependencies>
-</project>
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-versioning-lib/openecomp-sdc-versioning-core/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-sdc-versioning-lib/openecomp-sdc-versioning-core/pom.xml.versionsBackup
deleted file mode 100644
index ce41a59..0000000
--- a/openecomp-be/lib/openecomp-sdc-versioning-lib/openecomp-sdc-versioning-core/pom.xml.versionsBackup
+++ /dev/null
@@ -1,54 +0,0 @@
-<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xmlns="http://maven.apache.org/POM/4.0.0"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <name>openecomp-sdc-versioning-core</name>
-    <artifactId>openecomp-sdc-versioning-core</artifactId>
-
-
-    <parent>
-        <groupId>org.openecomp.sdc</groupId>
-        <artifactId>openecomp-sdc-lib</artifactId>
-        <version>1.0-SNAPSHOT</version>
-        <relativePath>../..</relativePath>
-    </parent>
-    <dependencies>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-versioning-api</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.mockito</groupId>
-            <artifactId>mockito-all</artifactId>
-            <scope>test</scope>
-            <version>1.10.19</version>
-        </dependency>
-        <dependency>
-            <groupId>org.testng</groupId>
-            <artifactId>testng</artifactId>
-            <scope>test</scope>
-            <version>6.8.5</version>
-            <exclusions>
-                <exclusion>
-                    <artifactId>snakeyaml</artifactId>
-                    <groupId>org.yaml</groupId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <scope>test</scope>
-            <version>4.11</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-logging-core</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-    </dependencies>
-
-</project>
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-sdc-versioning-lib/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-sdc-versioning-lib/pom.xml.versionsBackup
deleted file mode 100644
index 7804ebf..0000000
--- a/openecomp-be/lib/openecomp-sdc-versioning-lib/pom.xml.versionsBackup
+++ /dev/null
@@ -1,24 +0,0 @@
-<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xmlns="http://maven.apache.org/POM/4.0.0"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <name>openecomp-sdc-versioning-lib</name>
-    <artifactId>openecomp-sdc-versioning-lib</artifactId>
-
-    <packaging>pom</packaging>
-    <parent>
-        <artifactId>openecomp-sdc-lib</artifactId>
-        <groupId>org.openecomp.sdc</groupId>
-        <version>1.0-SNAPSHOT</version>
-    </parent>
-
-    <modules>
-        <module>openecomp-sdc-versioning-api</module>
-        <module>openecomp-sdc-versioning-core</module>
-    </modules>
-
-    <dependencies>
-
-    </dependencies>
-</project>
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-lib/pom.xml.versionsBackup b/openecomp-be/lib/openecomp-tosca-lib/pom.xml.versionsBackup
deleted file mode 100644
index be3c350..0000000
--- a/openecomp-be/lib/openecomp-tosca-lib/pom.xml.versionsBackup
+++ /dev/null
@@ -1,87 +0,0 @@
-<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xmlns="http://maven.apache.org/POM/4.0.0"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <groupId>org.openecomp.core</groupId>
-    <name>openecomp-tosca-lib</name>
-    <dependencies>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-utilities-lib</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-datatypes-lib</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.core</groupId>
-            <artifactId>openecomp-common-lib</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>ch.qos.logback</groupId>
-            <artifactId>logback-classic</artifactId>
-            <version>${logback.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <version>RELEASE</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc</groupId>
-            <artifactId>openecomp-sdc-logging-core</artifactId>
-            <version>1.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc.common</groupId>
-            <artifactId>openecomp-configuration-management-core</artifactId>
-            <version>1707.0.0-SNAPSHOT</version>
-            <scope>runtime</scope>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.slf4j</groupId>
-                    <artifactId>slf4j-log4j12</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc.common</groupId>
-            <artifactId>openecomp-configuration-management-api</artifactId>
-            <version>1707.0.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>org.openecomp.sdc.common</groupId>
-            <artifactId>openecomp-tosca-datatype</artifactId>
-            <version>1707.0.0-SNAPSHOT</version>
-        </dependency>
-    </dependencies>
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-surefire-plugin</artifactId>
-                <version>2.19.1</version>
-                <configuration>
-                    <useSystemClassLoader>false</useSystemClassLoader>
-                    <redirectTestOutputToFile>true</redirectTestOutputToFile>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
-
-
-    <artifactId>openecomp-tosca-lib</artifactId>
-
-    <parent>
-        <artifactId>openecomp-sdc-lib</artifactId>
-        <groupId>org.openecomp.sdc</groupId>
-        <version>1.0-SNAPSHOT</version>
-    </parent>
-
-
-</project>
\ No newline at end of file
diff --git a/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/datatypes/ToscaNodeType.java b/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/datatypes/ToscaNodeType.java
index b5b3e17..745f77f 100644
--- a/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/datatypes/ToscaNodeType.java
+++ b/openecomp-be/lib/openecomp-tosca-lib/src/main/java/org/openecomp/sdc/tosca/datatypes/ToscaNodeType.java
@@ -87,6 +87,6 @@
   public static String VNF_CONFIG_NODE_TYPE = ABSTRACT_NODE_TYPE_PREFIX + "VnfConfiguration";
   public static String MULTIFLAVOR_VFC_NODE_TYPE = ABSTRACT_NODE_TYPE_PREFIX + "MultiFlavorVFC";
   public static String MULTIDEPLOYMENTFLAVOR_NODE_TYPE = ABSTRACT_NODE_TYPE_PREFIX
-      + "MultiDeploymentFlavor";
+      + "MultiDeploymentFlavor.CVFC";
 }
 
diff --git a/openecomp-be/lib/pom.xml.versionsBackup b/openecomp-be/lib/pom.xml.versionsBackup
deleted file mode 100644
index 1859446..0000000
--- a/openecomp-be/lib/pom.xml.versionsBackup
+++ /dev/null
@@ -1,33 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <name>openecomp-sdc-lib</name>
-    <artifactId>openecomp-sdc-lib</artifactId>
-
-    <packaging>pom</packaging>
-    <parent>
-        <artifactId>openecomp-sdc</artifactId>
-        <groupId>org.openecomp.sdc</groupId>
-        <version>1.0-SNAPSHOT</version>
-    </parent>
-
-    <modules>
-        <module>openecomp-core-lib</module>
-        <module>openecomp-common-lib</module>
-        <module>openecomp-sdc-versioning-lib</module>
-        <module>openecomp-sdc-vendor-license-lib</module>
-        <module>openecomp-sdc-vendor-software-product-lib</module>
-        <module>openecomp-sdc-translator-lib</module>
-        <module>openecomp-sdc-model-lib</module>
-        <module>openecomp-sdc-validation-lib</module>
-        <module>openecomp-sdc-datatypes-lib</module>
-        <module>openecomp-heat-lib</module>
-        <module>openecomp-tosca-lib</module>
-        <module>openecomp-sdc-action-lib</module>
-        <module>openecomp-sdc-enrichment-lib</module>
-        <module>openecomp-logging-lib</module>
-        <module>openecomp-healing-lib</module>
-        <module>openecomp-migration-lib</module>
-    </modules>
-</project>
\ No newline at end of file
diff --git a/openecomp-be/tools/install/database/schemaTemplates/questionnaire/compute.ftl b/openecomp-be/tools/install/database/schemaTemplates/questionnaire/compute.ftl
index 3dc85cf..748f4da 100644
--- a/openecomp-be/tools/install/database/schemaTemplates/questionnaire/compute.ftl
+++ b/openecomp-be/tools/install/database/schemaTemplates/questionnaire/compute.ftl
@@ -40,12 +40,12 @@
         "memoryRAM": {
           "type": "string",
           "enum": [
-            "1",
-            "2",
-            "4",
-            "8"
+            "1 GB",
+            "2 GB",
+            "4 GB",
+            "8 GB"
           ],
-          "default": "1"
+          "default": "1 GB"
         }
       },
       "additionalProperties": false
diff --git a/openecomp-be/tools/migration/1702_to_1707_zusammen/src/main/java/org/openecomp/core/migration/convertors/EntitlementPoolConvertor.java b/openecomp-be/tools/migration/1702_to_1707_zusammen/src/main/java/org/openecomp/core/migration/convertors/EntitlementPoolConvertor.java
index c8037ce..86faf15 100644
--- a/openecomp-be/tools/migration/1702_to_1707_zusammen/src/main/java/org/openecomp/core/migration/convertors/EntitlementPoolConvertor.java
+++ b/openecomp-be/tools/migration/1702_to_1707_zusammen/src/main/java/org/openecomp/core/migration/convertors/EntitlementPoolConvertor.java
@@ -77,13 +77,10 @@
     info.setDescription(entitlementPool.getDescription());
     info.addProperty("thresholdValue", entitlementPool.getThresholdValue());
     info.addProperty("threshold_unit", entitlementPool.getThresholdUnit());
-    info.addProperty("entitlement_metric", entitlementPool.getEntitlementMetric());
+    //info.addProperty("entitlement_metric", entitlementPool.getEntitlementMetric());
     info.addProperty("increments", entitlementPool.getIncrements());
-    info.addProperty("aggregation_func", entitlementPool.getAggregationFunction());
     info.addProperty("operational_scope", entitlementPool.getOperationalScope());
-    info.addProperty("EntitlementTime", entitlementPool.getTime());
-    info.addProperty("manufacturerReferenceNumber",
-        entitlementPool.getManufacturerReferenceNumber());
+
     return info;
   }
 
diff --git a/openecomp-be/tools/migration/cassandra2zusammen.sh b/openecomp-be/tools/migration/cassandra2zusammen.sh
index 6ef90ad..99853b8 100644
--- a/openecomp-be/tools/migration/cassandra2zusammen.sh
+++ b/openecomp-be/tools/migration/cassandra2zusammen.sh
@@ -9,7 +9,6 @@
 
 
 # change exist package and service templates in db
-java -Dlog.home=/apps/jetty/base/be/logs -Dconfiguration.yaml=/apps/jetty/base/be/config/catalog-be/configuration.yaml  -jar openecomp-zusammen-migration-1.0-SNAPSHOT.jar org.openecomp.core.migration.MigrationMain
-
-STATUS="${?}"
-echo "${STATUS}"
+## Code removed but script is kept for future hook use ##
+##STATUS="${?}"
+##echo "${STATUS}"
diff --git a/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/Commands/ExportDataCommand.java b/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/Commands/ExportDataCommand.java
index b92ba52..685f70d 100644
--- a/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/Commands/ExportDataCommand.java
+++ b/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/Commands/ExportDataCommand.java
@@ -18,6 +18,10 @@
 import java.nio.file.Paths;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
 
 import static java.nio.file.Files.createDirectories;
 public class ExportDataCommand {
@@ -25,6 +29,8 @@
 
     public static void exportData(SessionContext context, String filterItem) {
         try {
+            Set<String> filteredItem = new HashSet<>();
+            filteredItem.add(filterItem);
             ImportProperties.initParams();
             CassandraConnectionInitializer.setCassandraConnectionPropertiesToSystem();
             Path rootDir = Paths.get(ImportProperties.ROOT_DIRECTORY);
@@ -32,10 +38,10 @@
             if (filterItem != null) {
                 filterItem = filterItem.replaceAll("\\r", "");
             }
-            new ItemHandler().createItemsData(context, filterItem);
-            new VersionHandler().loadVersions(filterItem);
-            new ElementHandler().loadElements(filterItem);
-            zipPath(rootDir,filterItem);
+            new ItemHandler().createItemsData(context, filteredItem);
+            new VersionHandler().loadVersions(filteredItem);
+            new ElementHandler().loadElements(filteredItem);
+            zipPath(rootDir,filteredItem);
             FileUtils.forceDelete(rootDir.toFile());
         } catch (Exception ex) {
             logger.error(ex.getMessage(), ex);
@@ -43,12 +49,14 @@
         }
 
     }
-    private static void zipPath(Path rootDir,String filterItem ) throws Exception{
+    private static void zipPath(Path rootDir,Set<String> filterItem ) throws Exception{
         LocalDateTime date = LocalDateTime.now();
         DateTimeFormatter formatter = DateTimeFormatter.ISO_LOCAL_DATE_TIME;
         String dateStr = date.format(formatter);
         String zipFile = System.getProperty("user.home")+ File.separatorChar+"onboarding_import"+ dateStr + ".zip";
         ZipUtils.createZip(zipFile, rootDir,filterItem);
+        logger.info("Exported file :" + zipFile);
+        System.out.println("Exported file :" + zipFile);
     }
 
 
diff --git a/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/Commands/exportdata/ElementHandler.java b/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/Commands/exportdata/ElementHandler.java
index ebce90f..49eaaea 100644
--- a/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/Commands/exportdata/ElementHandler.java
+++ b/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/Commands/exportdata/ElementHandler.java
@@ -10,6 +10,7 @@
 import java.nio.file.Path;
 import java.nio.file.Paths;
 import java.util.Objects;
+import java.util.Set;
 
 import static java.io.File.separator;
 import static java.nio.file.Files.*;
@@ -22,15 +23,16 @@
     public ElementHandler() {
     }
 
-    public void loadElements(String filteredItem) {
+    public void loadElements(Set<String> filteredItem) {
         ElementCassandraLoader elementCassandraLoader = new ElementCassandraLoader();
-        elementCassandraLoader.list().forEach(elementEntity ->  handleElementEntity(elementEntity,filteredItem));
+          elementCassandraLoader.list().forEach(elementEntity ->  handleElementEntity(elementEntity,filteredItem));
     }
 
-    private void handleElementEntity(ElementEntity elementEntity, String filteredItem) {
+    private void handleElementEntity(ElementEntity elementEntity, Set<String> filteredItem) {
         try {
             String itemId = elementEntity.getItemId();
-            if (filteredItem != null && !itemId.contains(filteredItem)){
+
+            if (!filteredItem.isEmpty() && !filteredItem.contains(itemId)){
                 return;
             }
             String versionId = elementEntity.getVersionId();
@@ -42,11 +44,18 @@
             if (!isNull(namespace)){
                 namespacePath =  namespace.replace(ELEMENT_NAMESPACE_SPLITTER,separator)+separator;
             }
-            Path elementDirectoryPath = Paths.get( ROOT_DIRECTORY + separator + itemId
-                    + separator + versionId + separator + space + separator + namespacePath+ separator + elementId);
+            Path elementDirectoryPath;
+            if (!isNull(namespace)){
+                elementDirectoryPath = Paths.get( ROOT_DIRECTORY + separator + itemId
+                        + separator + versionId + separator + space + separator + namespacePath+ separator + elementId);
+            } else {
+                elementDirectoryPath = Paths.get( ROOT_DIRECTORY + separator + itemId
+                        + separator + versionId + separator + space + separator + elementId);
+              }
+
             if (notExists(elementDirectoryPath)) {
-                createDirectories(elementDirectoryPath);
-            }
+                 Path created = createDirectories(elementDirectoryPath);
+             }
 
             String info = elementEntity.getInfo();
             if (!isNull(info)) {
diff --git a/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/Commands/exportdata/ItemHandler.java b/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/Commands/exportdata/ItemHandler.java
index 9eea182..710b731 100644
--- a/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/Commands/exportdata/ItemHandler.java
+++ b/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/Commands/exportdata/ItemHandler.java
@@ -1,9 +1,11 @@
 package org.openecomp.core.tools.Commands.exportdata;
 
+import com.amdocs.zusammen.datatypes.Id;
 import com.amdocs.zusammen.datatypes.SessionContext;
 import com.amdocs.zusammen.datatypes.item.Item;
 import com.amdocs.zusammen.plugin.statestore.cassandra.dao.ItemDao;
 import com.amdocs.zusammen.plugin.statestore.cassandra.dao.ItemDaoFactory;
+import com.google.common.base.Strings;
 import org.openecomp.core.tools.Commands.ExportDataCommand;
 import org.openecomp.core.utilities.json.JsonUtil;
 import org.openecomp.sdc.logging.api.Logger;
@@ -13,11 +15,14 @@
 import java.net.URISyntaxException;
 import java.nio.file.Path;
 import java.nio.file.Paths;
+import java.util.ArrayList;
 import java.util.List;
+import java.util.Optional;
+import java.util.Set;
 
-import static java.nio.file.Files.*;
 import static java.io.File.separator;
-import static org.openecomp.core.tools.Commands.exportdata.ImportProperties.*;
+import static java.nio.file.Files.*;
+import static org.openecomp.core.tools.Commands.exportdata.ImportProperties.JSON_POSTFIX;
 
 public class ItemHandler {
     private static final Logger logger = LoggerFactory.getLogger(ExportDataCommand.class);
@@ -27,21 +32,42 @@
         ImportProperties.initParams();
     }
 
-    public void createItemsData(SessionContext context, String filteredItem) throws URISyntaxException, IOException {
+    public void createItemsData(SessionContext context, Set<String> filteredItem) throws URISyntaxException, IOException {
+        final List<Item> items = new ArrayList<>();
+        if (filteredItem.isEmpty()) {
+            items.addAll(getItemDao(context).list(context));
+        } else {
+            Optional<Item> item = addItem(context, filteredItem.iterator().next(), items);
+            item.ifPresent(foundedItem -> {
+                Object vendorId =  foundedItem.getInfo().getProperty("vendorId");
+                if (vendorId != null) {
+                    String vendorIdStr = vendorId.toString();
+                    addItem(context, vendorIdStr, items);
+                    filteredItem.add(vendorIdStr);
+                }
+            });
+        }
 
-        List<Item> items = getItemDao(context).list(context);
-        items.parallelStream().forEach(item -> createItemDirectoryAndFiles(item,filteredItem));
+        items.parallelStream().forEach(item -> createItemDirectoryAndFiles(item, filteredItem));
 
     }
 
-    private final void createItemDirectoryAndFiles(Item item,String filteredItem) {
+
+
+    private Optional<Item> addItem(SessionContext context, String filteredItem, List<Item> items) {
+        Optional<Item> item = getItemDao(context).get(context, new Id(filteredItem));
+        item.ifPresent(itemData -> items.add(itemData));
+        return item;
+    }
+
+    private final void createItemDirectoryAndFiles(Item item, Set<String> filteredItem) {
         try {
             String itemId = item.getId().getValue();
-            if (filteredItem != null && !itemId.contains(filteredItem)){
+            if (!filteredItem.isEmpty() && !filteredItem.contains(itemId)) {
                 return;
             }
-            Path itemPath = Paths.get( ImportProperties.ROOT_DIRECTORY + separator + itemId);
-            Path itemFilePath = Paths.get( ImportProperties.ROOT_DIRECTORY + separator +
+            Path itemPath = Paths.get(ImportProperties.ROOT_DIRECTORY + separator + itemId);
+            Path itemFilePath = Paths.get(ImportProperties.ROOT_DIRECTORY + separator +
                     itemId + separator + itemId + JSON_POSTFIX);
             if (notExists(itemPath)) {
                 createDirectories(itemPath);
diff --git a/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/Commands/exportdata/VersionHandler.java b/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/Commands/exportdata/VersionHandler.java
index b8d8295..e8e703b 100644
--- a/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/Commands/exportdata/VersionHandler.java
+++ b/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/Commands/exportdata/VersionHandler.java
@@ -17,6 +17,7 @@
 
 import java.nio.file.Path;
 import java.nio.file.Paths;
+import java.util.Set;
 
 public class VersionHandler {
     private static final Logger logger = LoggerFactory.getLogger(ExportDataCommand.class);
@@ -24,17 +25,17 @@
     public VersionHandler() {
     }
 
-    public void loadVersions(String filteredItem) {
+    public void loadVersions(Set<String> filteredItem) {
         VersionCassandraLoader versionCassandraLoader = new VersionCassandraLoader();
         versionCassandraLoader.list().forEach(versionEntity -> handleVersionEntity(versionEntity,filteredItem));
         VersionInfoCassandraLoader versionInfoCassandraLoader = new VersionInfoCassandraLoader();
         versionInfoCassandraLoader.list().forEach(versionInfoEntity ->  handleVersionInfo(versionInfoEntity,filteredItem));
     }
 
-    private void handleVersionEntity(VersionEntity versionEntity, String filteredItem) {
+    private void handleVersionEntity(VersionEntity versionEntity, Set<String> filteredItem) {
         try {
             String itemId = versionEntity.getItemId();
-            if (filteredItem != null && !itemId.contains(filteredItem)){
+            if (!filteredItem.isEmpty()  && !filteredItem.contains(itemId)){
                 return;
             }
             String versionId = versionEntity.getVersionId();
@@ -55,7 +56,7 @@
 
     }
 
-    private void handleVersionInfo(VersionInfoEntity versionInfoEntity, String filteredItem) {
+    private void handleVersionInfo(VersionInfoEntity versionInfoEntity, Set<String> filteredItem) {
         try {
             String itemId = versionInfoEntity.getEntityId();
             Path itemDirectory = Paths.get( ROOT_DIRECTORY + separator + itemId);
diff --git a/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/Commands/importdata/ElementImport.java b/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/Commands/importdata/ElementImport.java
index 7ba8309..d51458a 100644
--- a/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/Commands/importdata/ElementImport.java
+++ b/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/Commands/importdata/ElementImport.java
@@ -1,5 +1,6 @@
 package org.openecomp.core.tools.Commands.importdata;
 
+import com.amdocs.zusammen.datatypes.Id;
 import com.amdocs.zusammen.datatypes.SessionContext;
 import org.openecomp.core.tools.store.ElementCassandraLoader;
 import org.openecomp.core.tools.store.ElementNamespaceHandler;
@@ -15,21 +16,26 @@
 import java.nio.file.Path;
 import java.nio.file.Paths;
 import java.util.Arrays;
+import java.util.HashSet;
 import java.util.Set;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
 
 import static java.io.File.separator;
 import static org.openecomp.core.tools.Commands.exportdata.ImportProperties.*;
 
 public class ElementImport {
     private static final Logger logger = LoggerFactory.getLogger(ElementImport.class);
+    public static final String ROOT_ITEM = Id.ZERO.getValue();
+
     private ElementCassandraLoader elementCassandraLoader = new ElementCassandraLoader();
     private ElementNamespaceHandler cassandraElementRepository = new ElementNamespaceHandler();
     private VersionCassandraLoader versionCassandraLoader = new VersionCassandraLoader();
 
-    public void loadPath(SessionContext sessionContext, Path elementDir, String elementId, String[] pathObjects) {
+    public void loadPath(SessionContext sessionContext, Path elementDir, String elementId, String[]
+            pathObjects) {
         try {
+            if (!Files.isDirectory(elementDir)){
+                return;
+            }
             // load info file
             ElementEntity elementEntity = new ElementEntity();
             Path infoFilePath = Paths.get(elementDir.toString() + separator + ELEMENT_INFO_PREFIX
@@ -38,7 +44,6 @@
                 String info = new String(Files.readAllBytes(infoFilePath));
                 elementEntity.setInfo(info);
             }
-
             // load relation file
             Path realtionsFilePath = Paths.get(elementDir.toString() + separator
                     + ELEMENT_RELATION_PREFIX + elementId + JSON_POSTFIX);
@@ -58,7 +63,7 @@
 
             //load visualization
             Path visualFilePath = Paths.get(elementDir.toString() + separator
-                    + ELEMENT_VISUALIZATION_PREFIX + elementId );
+                    + ELEMENT_VISUALIZATION_PREFIX + elementId);
             if (Files.exists(visualFilePath)) {
                 byte[] bytes = Files.readAllBytes(visualFilePath);
                 ByteBuffer visualization = ByteBuffer.wrap(bytes);
@@ -67,45 +72,60 @@
 
             //load searchable
             Path searchableFilePath = Paths.get(elementDir.toString() + separator
-                    + ELEMENT_SEARCHABLE_PREFIX + elementId );
+                    + ELEMENT_SEARCHABLE_PREFIX + elementId);
             if (Files.exists(searchableFilePath)) {
                 byte[] bytes = Files.readAllBytes(searchableFilePath);
                 ByteBuffer searchable = ByteBuffer.wrap(bytes);
                 elementEntity.setSearchableData(searchable);
             }
-
+            String element_Id = pathObjects[pathObjects.length - 1];
             elementEntity.setSpace(pathObjects[2]);
             elementEntity.setItemId(pathObjects[0]);
             elementEntity.setVersionId(pathObjects[1]);
-            elementEntity.setElement_id(pathObjects[pathObjects.length - 1]);
+            elementEntity.setElement_id(element_Id);
             elementEntity.setNamespace(getNameSpace(pathObjects));
             elementEntity.setParentId(getParentId(pathObjects));
-            elementEntity.setSubElementIds(getAllSubElementsIds(elementDir));
+            elementEntity.setSubElementIds(getAllSubElementsIds(elementDir, element_Id));
             elementCassandraLoader.createEntity(elementEntity);
             cassandraElementRepository.createElementNamespace(elementEntity);
             versionCassandraLoader.insertElementToVersion(elementEntity);
         } catch (Exception ex) {
             logger.error(ex.getMessage(), ex);
+            ex.printStackTrace();
         }
     }
 
     private String getParentId(String[] pathObjects) {
-        if (pathObjects.length <= 4) {
+
+        if (pathObjects[pathObjects.length - 1].equals(ROOT_ITEM)) {
             return null;
         }
+        if (pathObjects.length == 4) {
+            return ROOT_ITEM;
+        }
         return pathObjects[pathObjects.length - 2];
     }
 
-    private Set<String> getAllSubElementsIds(Path root) throws IOException {
-        try (Stream<Path> walk = Files.walk(root)) {
-           return  walk.filter(path -> Files.isDirectory(path))
-                   .map(path -> path.toFile().getName() ).collect(Collectors.toSet());
+    private Set<String> getAllSubElementsIds(Path root, String elementId) throws IOException {
+        if (elementId.equals(ROOT_ITEM)) {
+            root = root.getParent();
         }
+        File file = root.toFile();
+        Set<String> retVal = new HashSet<>();
+        File[] files = file.listFiles();
+        for (File f : files){
+            if (f.isDirectory()){
+                retVal.add(f.getName());
+            }
+        }
+        retVal.remove(ROOT_ITEM);
+        return retVal;
+
     }
 
     private String getNameSpace(String[] pathObjects) {
         if (pathObjects.length <= 4) {
-            return null;
+            return "";
         }
         if (pathObjects.length == 5) {
             return pathObjects[3];
diff --git a/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/Commands/importdata/ItemImport.java b/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/Commands/importdata/ItemImport.java
index c704274..9ec5d63 100644
--- a/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/Commands/importdata/ItemImport.java
+++ b/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/Commands/importdata/ItemImport.java
@@ -31,8 +31,11 @@
             Item item = JsonUtil.json2Object(itemJson, Item.class);
             ItemDao itemDao = getItemDao(sessionContext);
             itemDao.create(sessionContext, item.getId(), item.getInfo(), item.getCreationTime());
+            logger.info("Item Created :"+item.getInfo().getName()+" , "+item.getId());
+            System.out.println("Item Created :"+item.getInfo().getName()+" , "+item.getId());
         } catch (Exception ex) {
             logger.error(ex.getMessage(), ex);
+            ex.printStackTrace();
         }
     }
 
diff --git a/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/Commands/importdata/TreeWalker.java b/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/Commands/importdata/TreeWalker.java
index 020b2f3..15f8b02 100644
--- a/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/Commands/importdata/TreeWalker.java
+++ b/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/Commands/importdata/TreeWalker.java
@@ -4,10 +4,14 @@
 import org.openecomp.sdc.logging.api.Logger;
 import org.openecomp.sdc.logging.api.LoggerFactory;
 
+import javax.validation.constraints.Min;
 import java.io.File;
 import java.io.IOException;
 import java.nio.file.Files;
 import java.nio.file.Path;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
 import java.util.stream.Stream;
 
 public class TreeWalker {
@@ -21,7 +25,10 @@
     }
 
     private static final void handlePath(SessionContext sessionContext, Path path, Path root,String filterItem) {
-        String logicalPath = path.toString().replace(root.toString()+File.separator, "");
+        String logicalPath = path.toString().replace(root.toString(), "");
+        if (logicalPath.startsWith(File.separator)){
+            logicalPath = logicalPath.substring(1);
+        }
         String[] splitted = logicalPath.split(File.separator);
         if(filterItem != null && splitted.length > 0 && !splitted[0].contains(filterItem)){
             return;
@@ -42,7 +49,7 @@
                 break;
             default:
                 //handle elements
-                new ElementImport().loadPath(sessionContext,path,splitted[splitted.length -1],splitted);
+                 new ElementImport().loadPath(sessionContext,path,splitted[splitted.length -1],splitted);
                 break;
         }
 
diff --git a/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/util/ZipUtils.java b/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/util/ZipUtils.java
index 6447f85..2f6693d 100644
--- a/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/util/ZipUtils.java
+++ b/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/util/ZipUtils.java
@@ -10,12 +10,14 @@
 import java.nio.file.Path;
 import java.util.Objects;
 import java.util.Scanner;
+import java.util.Set;
+import java.util.stream.Collectors;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipInputStream;
 import java.util.zip.ZipOutputStream;
 
 public class ZipUtils {
-    public static void createZip(String zipFileName, Path dir, String filterItem) throws Exception {
+    public static void createZip(String zipFileName, Path dir, Set<String> filterItem) throws Exception {
         File dirObj = dir.toFile();
         try (
                 FileOutputStream fileOutputStream = new FileOutputStream(zipFileName);
@@ -24,29 +26,34 @@
         }
     }
 
-    public static final String cleanStr(String inFilterStr) {
-        if (Objects.isNull(inFilterStr)) {
-            return inFilterStr;
-        }
-        Scanner scan = new Scanner(inFilterStr);
-        while (scan.hasNextLine()) {
-            inFilterStr = scan.nextLine().replaceAll("[^a-zA-Z0-9]", "");
-        }
-        return inFilterStr;
+    public static final Set<String> cleanStr(Set<String> inFilterStrs) {
+        return inFilterStrs.stream().map(inFilterStr -> {
+                    if (Objects.isNull(inFilterStr)) {
+                        return inFilterStr;
+                    }
+                    Scanner scan = new Scanner(inFilterStr);
+                    while (scan.hasNextLine()) {
+                        inFilterStr = scan.nextLine().replaceAll("[^a-zA-Z0-9]", "");
+                    }
+                    return inFilterStr;
+                }
+        ).collect(Collectors.toSet());
     }
 
-    static void addDir(File dirObj, ZipOutputStream out, String root, String filterItem) throws IOException {
+    static void addDir(File dirObj, ZipOutputStream out, String root, Set<String> filterItem) throws IOException {
         File[] files = dirObj.listFiles();
         filterItem = cleanStr(filterItem);
 
         for (int i = 0; i < files.length; i++) {
             if (files[i].isDirectory()) {
                 addDir(files[i], out, root, filterItem);
+                String filePath = files[i].getAbsolutePath().replace(root + File.separator, "") + "/";
+                out.putNextEntry(new ZipEntry(filePath));
                 continue;
             }
             try (FileInputStream in = new FileInputStream((files[i].getAbsolutePath()))) {
                 String filePath = files[i].getAbsolutePath().replace(root + File.separator, "");
-                if (filterItem == null || filePath.contains(filterItem)) {
+                if (filterItem.isEmpty() || filterItem.stream().anyMatch(s -> filePath.contains(s))) {
                     out.putNextEntry(new ZipEntry(filePath));
                     try {
                         ByteStreams.copy(in, out);
@@ -74,9 +81,16 @@
             while (ze != null) {
                 String fileName = ze.getName();
                 File newFile = new File(outputFolder.toString() + File.separator + fileName);
-                new File(newFile.getParent()).mkdirs();
-                try (FileOutputStream fos = new FileOutputStream(newFile)) {
-                    ByteStreams.copy(zis, fos);
+                if (ze.isDirectory()) {
+                    Path path = newFile.toPath();
+                    if (!Files.exists(path)) {
+                        Files.createDirectories(path);
+                    }
+                } else {
+                    new File(newFile.getParent()).mkdirs();
+                    try (FileOutputStream fos = new FileOutputStream(newFile)) {
+                        ByteStreams.copy(zis, fos);
+                    }
                 }
                 ze = zis.getNextEntry();
             }
diff --git a/openecomp-be/tools/zusammen-tools/src/main/resources/logback.xml b/openecomp-be/tools/zusammen-tools/src/main/resources/logback.xml
index b1c1335..a13dc82 100644
--- a/openecomp-be/tools/zusammen-tools/src/main/resources/logback.xml
+++ b/openecomp-be/tools/zusammen-tools/src/main/resources/logback.xml
@@ -1,282 +1,17 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<configuration scan="true" scanPeriod="5 seconds">
+<configuration>
 
-    <property scope="system" name="ECOMP-component-name" value="ASDC" />
-    <property scope="system" name="ECOMP-subcomponent-name" value="ASDC-BE" />
-    <property file="${config.home}/catalog-be/configuration.yaml" />
-    <property scope="context" name="enable-all-log" value="false" />
-
-    <!--statusListener class="ch.qos.logback.core.status.OnConsoleStatusListener" />
-    <include resource="asdc_debug_logback.xml"/-->
-
-    <!-- value used by pattern field list (| - is inter-field separator, || - unavailable or not applicable field value) (m - mandatory, o- optional)-->
-    <!--timestamp(m)| requestID(m)| serviceInstanceID(o)| threadID(m)| physicalServerName(o)| serviceName(m)| userID(m)| logLevel(m)| severity(o)| serverIpAddress(m)| serverName(m)| clientIpAddress(o)| className(m)| timer(o)| detailedMessage(o)-->
-    <property name="default-log-pattern"
-              value="%d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{uuid}|%X{serviceInstanceID}|%thread||${ECOMP-subcomponent-name}|%X{userId}|%level|%X{alarmSeverity}|%X{localAddr}|${beFqdn}|%X{remoteAddr}|%logger{35}|%X{timer}|ActivityType=&lt;%M&gt;, Desc=&lt;%msg&gt;%n" />
-
-    <property name="asdc-debug-log-pattern" value="%d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{RequestId}|%msg %n"/>
-
-    <!-- All log -->
-    <if condition='property("enable-all-log").equalsIgnoreCase("true")'>
-        <then>
-            <appender name="ALL_ROLLING"
-                      class="ch.qos.logback.core.rolling.RollingFileAppender">
-                <file>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/all.log
-                </file>
-
-                <rollingPolicy
-                        class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
-                    <fileNamePattern>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/all.log.%i
-                    </fileNamePattern>
-                    <minIndex>1</minIndex>
-                    <maxIndex>10</maxIndex>
-                </rollingPolicy>
-
-                <triggeringPolicy
-                        class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
-                    <maxFileSize>20MB</maxFileSize>
-                </triggeringPolicy>
-                <encoder>
-                    <pattern>${default-log-pattern}</pattern>
-                </encoder>
-            </appender>
-
-            <appender name="ASYNC_ALL" class="ch.qos.logback.classic.AsyncAppender">
-                <appender-ref ref="ALL_ROLLING" />
-            </appender>
-        </then>
-    </if>
-
-    <!-- Error log -->
-    <appender name="ERROR_ROLLING"
-              class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <file>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/Error.log
-        </file>
-
-        <!-- Audit messages filter - deny audit messages -->
-        <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
-            <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
-                <marker>AUDIT_MARKER</marker>
-            </evaluator>
-            <onMismatch>NEUTRAL</onMismatch>
-            <onMatch>DENY</onMatch>
-        </filter>
-
-        <!-- Transaction messages filter - deny Transaction messages -->
-        <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
-            <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
-                <marker>TRANSACTION_MARKER</marker>
-            </evaluator>
-            <onMismatch>NEUTRAL</onMismatch>
-            <onMatch>DENY</onMatch>
-        </filter>
-
-        <!-- deny all events with a level below INFO, that is TRACE and DEBUG -->
-        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
-            <level>INFO</level>
-        </filter>
-
-        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
-            <fileNamePattern>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/Error.log.%i
-            </fileNamePattern>
-            <minIndex>1</minIndex>
-            <maxIndex>10</maxIndex>
-        </rollingPolicy>
-
-        <triggeringPolicy
-                class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
-            <maxFileSize>20MB</maxFileSize>
-        </triggeringPolicy>
+    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+        <!-- encoders are assigned the type
+             ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
         <encoder>
-            <pattern>${default-log-pattern}</pattern>
+            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
         </encoder>
     </appender>
 
-    <!-- Debug log -->
-    <appender name="DEBUG_ROLLING"
-              class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <file>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/debug.log
-        </file>
-
-        <!-- No need to deny audit messages - they are INFO only, will be denied
-            anyway -->
-        <!-- Transaction messages filter - deny Transaction messages, there are
-            some DEBUG level messages among them -->
-        <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
-            <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
-                <marker>TRANSACTION_MARKER</marker>
-            </evaluator>
-            <onMismatch>NEUTRAL</onMismatch>
-            <onMatch>DENY</onMatch>
-        </filter>
-
-        <!-- accept DEBUG and TRACE level -->
-        <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
-            <evaluator class="ch.qos.logback.classic.boolex.GEventEvaluator">
-                <expression>
-                    e.level.toInt() &lt;= DEBUG.toInt()
-                </expression>
-            </evaluator>
-            <OnMismatch>DENY</OnMismatch>
-            <OnMatch>NEUTRAL</OnMatch>
-        </filter>
-
-        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
-            <fileNamePattern>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/debug.log.%i
-            </fileNamePattern>
-            <minIndex>1</minIndex>
-            <maxIndex>10</maxIndex>
-        </rollingPolicy>
-
-        <triggeringPolicy
-                class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
-            <maxFileSize>20MB</maxFileSize>
-        </triggeringPolicy>
-        <encoder>
-            <pattern>${default-log-pattern}</pattern>
-        </encoder>
-    </appender>
-
-    <!-- Debug log -->
-    <appender name="MIGRATION_DEBUG_ROLLING"
-              class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <file>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/cassandra2zusammen_migration_debug.log
-        </file>
-
-        <!-- No need to deny audit messages - they are INFO only, will be denied
-            anyway -->
-        <!-- Transaction messages filter - deny Transaction messages, there are
-            some DEBUG level messages among them -->
-        <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
-            <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
-                <marker>TRANSACTION_MARKER</marker>
-            </evaluator>
-            <onMismatch>NEUTRAL</onMismatch>
-            <onMatch>DENY</onMatch>
-        </filter>
-
-        <!-- accept DEBUG and TRACE level -->
-        <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
-            <evaluator class="ch.qos.logback.classic.boolex.GEventEvaluator">
-                <expression>
-                    e.level.toInt() &lt;= DEBUG.toInt()
-                </expression>
-            </evaluator>
-            <OnMismatch>DENY</OnMismatch>
-            <OnMatch>NEUTRAL</OnMatch>
-        </filter>
-
-        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
-            <fileNamePattern>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/debug_by_package.log.%i
-            </fileNamePattern>
-            <minIndex>1</minIndex>
-            <maxIndex>10</maxIndex>
-        </rollingPolicy>
-
-        <triggeringPolicy
-                class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
-            <maxFileSize>20MB</maxFileSize>
-        </triggeringPolicy>
-        <encoder>
-            <pattern>${asdc-debug-log-pattern}</pattern>
-        </encoder>
-    </appender>
-
-    <!-- Audit log -->
-    <appender name="AUDIT_ROLLING"
-              class="ch.qos.logback.core.rolling.RollingFileAppender">
-
-        <file>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/audit.log
-        </file>
-
-        <!-- Audit messages filter - accept audit messages -->
-        <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
-            <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
-                <marker>AUDIT_MARKER</marker>
-            </evaluator>
-            <onMismatch>DENY</onMismatch>
-            <onMatch>ACCEPT</onMatch>
-        </filter>
-
-        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
-            <fileNamePattern>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/audit.log.%i
-            </fileNamePattern>
-            <minIndex>1</minIndex>
-            <maxIndex>10</maxIndex>
-        </rollingPolicy>
-
-        <triggeringPolicy
-                class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
-            <maxFileSize>20MB</maxFileSize>
-        </triggeringPolicy>
-        <encoder>
-            <pattern>${default-log-pattern}</pattern>
-        </encoder>
-    </appender>
-
-    <!-- SdncTransaction log -->
-    <appender name="TRANSACTION_ROLLING"
-              class="ch.qos.logback.core.rolling.RollingFileAppender">
-
-        <file>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/transaction.log
-        </file>
-
-        <!-- Transaction messages filter - accept audit messages -->
-        <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
-            <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
-                <marker>TRANSACTION_MARKER</marker>
-            </evaluator>
-            <onMismatch>DENY</onMismatch>
-            <onMatch>ACCEPT</onMatch>
-        </filter>
-
-        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
-            <fileNamePattern>${log.home}/${ECOMP-component-name}/${ECOMP-subcomponent-name}/transaction.log.%i
-            </fileNamePattern>
-            <minIndex>1</minIndex>
-            <maxIndex>10</maxIndex>
-        </rollingPolicy>
-
-        <triggeringPolicy
-                class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
-            <maxFileSize>20MB</maxFileSize>
-        </triggeringPolicy>
-        <encoder>
-            <pattern>${default-log-pattern}</pattern>
-        </encoder>
-    </appender>
-
-    <!-- Asynchronicity Configurations -->
-    <appender name="ASYNC_DEBUG" class="ch.qos.logback.classic.AsyncAppender">
-        <appender-ref ref="DEBUG_ROLLING" />
-    </appender>
-
-    <appender name="ASYNC_TRANSACTION" class="ch.qos.logback.classic.AsyncAppender">
-        <appender-ref ref="TRANSACTION_ROLLING" />
-    </appender>
-
-    <appender name="ASYNC_ERROR" class="ch.qos.logback.classic.AsyncAppender">
-        <appender-ref ref="ERROR_ROLLING" />
-    </appender>
 
 
-    <root level="INFO">
-        <appender-ref ref="ASYNC_ERROR" />
-        <appender-ref ref="ASYNC_DEBUG" />
-        <appender-ref ref="AUDIT_ROLLING" />
-        <appender-ref ref="ASYNC_TRANSACTION" />
-        <if condition='property("enable-all-log").equalsIgnoreCase("true")'>
-            <then>
-                <appender-ref ref="ALL_ROLLING" />
-            </then>
-        </if>
+    <root level="warn">
+        <appender-ref ref="STDOUT"/>
     </root>
 
-    <logger name="org.openecomp.sdc" level="INFO" />
-
-    <logger name="org.openecomp.core" level="DEBUG" additivity="false">
-        <appender-ref ref="MIGRATION_DEBUG_ROLLING" />
-    </logger>
-</configuration>
-
-
+</configuration>
\ No newline at end of file
diff --git a/openecomp-ui/.gitignore b/openecomp-ui/.gitignore
index 2a11210..13e532c 100644
--- a/openecomp-ui/.gitignore
+++ b/openecomp-ui/.gitignore
@@ -6,6 +6,9 @@
 dist
 node_modules
 devConfig.json
+proxy-server.js
+runLocalFE.cmd
+runLocalFE.js
 .npmrc
 test/coverage
 npm-debug.log
diff --git a/openecomp-ui/devConfig.defaults.json b/openecomp-ui/devConfig.defaults.json
index 46f0d18..99380b1 100644
--- a/openecomp-ui/devConfig.defaults.json
+++ b/openecomp-ui/devConfig.defaults.json
@@ -1,6 +1,6 @@
 {
   "port": 9000,
-  "proxyATTTarget": null,
+  "proxyCatalogTarget": null,
   "proxyTarget": null,
   "bundles": {
     "bundle": ["sdc-app/sdc.app.jsx"],
diff --git a/openecomp-ui/package.json b/openecomp-ui/package.json
index 0e1e66b..ef44bfb 100644
--- a/openecomp-ui/package.json
+++ b/openecomp-ui/package.json
@@ -8,8 +8,8 @@
     "start": "gulp dev && webpack-dev-server --progress",
     "build": "gulp build",
     "css-usage": "gulp css-usage",
-    "static-keys-bundle" : "gulp static-keys-bundle",
-    "check-keys-against-bundles" : "gulp static-keys-bundle-with-report",
+    "static-keys-bundle": "gulp static-keys-bundle",
+    "check-keys-against-bundles": "gulp static-keys-bundle-with-report",
     "test": "jest",
     "test-failedTestReport": "jest --json | node test-utils/failedTestReport.js",
     "test-dev": "jest --watch",
@@ -18,9 +18,10 @@
     "storyshots": "jest storyshots.test.js",
     "build-storybook": "build-storybook -c .storybook -o .storybook-dist && gulp copy-storybook-fonts && gulp copy-storybook-resources-prod"
   },
-  "dependencies": {
+  "dependencies": {    
     "classnames": "^2.2.5",
     "core-js": "^2.4.0",
+    "d3": "^3.5.16",
     "dox-sequence-diagram-ui": "file:../dox-sequence-diagram-ui",
     "intl": "^1.0.1",
     "intl-format-cache": "^2.0.5",
@@ -39,7 +40,7 @@
     "react-sortable": "^1.2.0",
     "redux": "^3.3.1",
     "restful-js": "^0.7.0",
-    "sdc-ui": "^1.5.12",
+    "sdc-ui": "1.6.0",
     "uuid-js": "^0.7.5",
     "validator": "^4.3.0"
   },
diff --git a/openecomp-ui/proxy-server.js b/openecomp-ui/proxy-server.js
deleted file mode 100644
index 4733d38..0000000
--- a/openecomp-ui/proxy-server.js
+++ /dev/null
@@ -1,92 +0,0 @@
-'use strict';
-
-const proxy = require('http-proxy-middleware');
-
-let localDevConfig = {};
-try {
-	localDevConfig = require('./devConfig');
-} catch (e) {}
-const devConfig = Object.assign({}, require('./devConfig.defaults'), localDevConfig);
-let devPort = process.env.PORT || devConfig.port;
-
-let jsonConfig = {
-	"appContextPath" : "/onboarding"
-};
-
-try {
-	jsonConfig = require('./src/sdc-app/config/config.json');
-} catch (e) {
-	console.log('could not load config. using deault value instead');
-}
-
-module.exports = function (server) {
-	let proxyConfigDefaults = {
-		changeOrigin: true,
-		secure: false,
-		onProxyRes: (proxyRes, req, res) => {
-			let setCookie = proxyRes.headers['set-cookie'];
-			if (setCookie) {
-				setCookie[0] = setCookie[0].replace(/\bSecure\b(; )?/, '');
-			}
-			if (proxyRes.statusCode === 302 && proxyRes.headers.location.indexOf('login') > -1) {
-				proxyRes.headers.location = `http://localhost:${devPort}/sdc1#/onboardVendor`;
-				res.setHeader('Set-Cookie', [
-					'HTTP_CSP_EMAIL=csantana@sdc.com',
-					'HTTP_CSP_FIRSTNAME=Carlos',
-					'HTTP_CSP_LASTNAME=Santana',
-					'HTTP_CSP_WSTYPE=Intranet',
-					'HTTP_IV_REMOTE_ADDRESS=0.0.0.0',
-					'HTTP_IV_USER=cs0008',
-					'USER_ID=cs0008'
-				]);
-			}
-		}
-	};
-
-	let middlewares = [
-		(req, res, next) => {
-			if (req.url.indexOf('/proxy-designer1') > -1) {
-				req.url = req.url.replace('/proxy-designer1', '');
-			}
-
-			if (req.url.indexOf(jsonConfig.appContextPath + '/resources') > -1) {
-				req.url = req.url.replace(jsonConfig.appContextPath, '');
-			}
-
-			let match = req.url.match(/^(.*)_en.js$/);
-			let newUrl = match && match[1] + '.js';
-			if (newUrl) {
-				console.log(`REWRITING URL: ${req.url} -> ${newUrl}`);
-				req.url = newUrl;
-			}
-			next();
-		}
-	];
-
-	// standalon back-end (proxyTarget) has higher priority, so it should be first
-	if (devConfig.proxyTarget) {
-		middlewares.push(
-			proxy(['/api', '/onboarding-api', '/sdc1/feProxy/onboarding-api'], Object.assign({}, proxyConfigDefaults, {
-				target: devConfig.proxyTarget,
-				pathRewrite: {
-					'/sdc1/feProxy/onboarding-api': '/onboarding-api'
-				}
-			}))
-		);
-	}
-
-	// ATT environment (proxyATTTarget) has lower priority, so it should be second
-	if (devConfig.proxyATTTarget) {
-		middlewares.push(
-			proxy(['/sdc1', '/onboarding-api', '/scripts', '/styles'], Object.assign({}, proxyConfigDefaults, {
-				target: devConfig.proxyATTTarget,
-				pathRewrite: {
-					// Workaround for some weird proxy issue
-					'/sdc1/feProxy/onboarding-api': '/sdc1/feProxy/onboarding-api',
-					'/onboarding-api': '/sdc1/feProxy/onboarding-api'
-				}
-			}))
-		);
-	}
-	server.use(middlewares);
-};
diff --git a/openecomp-ui/resources/scss/_modules.scss b/openecomp-ui/resources/scss/_modules.scss
index 317f908..405e91a 100644
--- a/openecomp-ui/resources/scss/_modules.scss
+++ b/openecomp-ui/resources/scss/_modules.scss
@@ -1,4 +1,5 @@
 @import "modules/licenseModelOverview";
+@import "modules/licenseModelLimits";
 @import "modules/licenseAgreement";
 @import "modules/featureGroup";
 @import "modules/entitlementPools";
diff --git a/openecomp-ui/resources/scss/bootstrap-cust/_modals.scss b/openecomp-ui/resources/scss/bootstrap-cust/_modals.scss
index 9301f1e..ad6b4f8 100644
--- a/openecomp-ui/resources/scss/bootstrap-cust/_modals.scss
+++ b/openecomp-ui/resources/scss/bootstrap-cust/_modals.scss
@@ -1,6 +1,7 @@
 .modal-content {
   .modal-header {
     border-top: 3px solid $blue;
+		padding-left: 50px;
     .modal-title {
       @extend .heading-2;
     }
diff --git a/openecomp-ui/resources/scss/common/_utils.scss b/openecomp-ui/resources/scss/common/_utils.scss
index dce623e..54f8b97 100644
--- a/openecomp-ui/resources/scss/common/_utils.scss
+++ b/openecomp-ui/resources/scss/common/_utils.scss
@@ -219,14 +219,10 @@
   width: $size;
   height: $size;
   background: $bgcolor;
-  border: 3px solid $bgcolor;
-  &:after {
-    content: $content;
-    position: relative;
-    left: 9px;
-    top: 9px;
-    @extend .circle-icon-text;
-  }
+	border: 3px solid $bgcolor;
+	display: flex;
+	align-items: center;
+	justify-content: center;
 }
 
 /**/
@@ -306,3 +302,12 @@
 @mixin border-shadow($xShadow: 0.545px, $yShadow: 0.839px, $blur: 4px, $spread: 0, $color: $light-gray, $opacity: 0.2) {
   @include box-shadow($xShadow $yShadow $blur $spread rgba($color, $opacity));
 }
+
+/* percent-plus-value */
+// @mixin
+//     Calculate length property (e.g. width, margin) by adding a value (e.g. in pixels)
+//     to a percentage of container height/width
+@mixin percent-plus-value($property, $value, $percent: 100%) {
+  $string: 'calc(' + $percent + ' + ' + $value + ')';
+  #{$property}: unquote($string);
+}
diff --git a/openecomp-ui/resources/scss/components/_datepicker.scss b/openecomp-ui/resources/scss/components/_datepicker.scss
index 593bb09..d51a1b6 100644
--- a/openecomp-ui/resources/scss/components/_datepicker.scss
+++ b/openecomp-ui/resources/scss/components/_datepicker.scss
@@ -1,5 +1,6 @@
 .customized-date-picker {
 	margin-bottom: 24px;
+	display: flex;
 	.date-picker-label {
 		&.required {
 			&:before {
@@ -13,27 +14,38 @@
 		color: $dark-gray;
 		margin-bottom: 8px;
 	}
+	.react-datepicker__input-container {
+		flex: 1;
+		cursor: pointer;
+	}
 	.datepicker-custom-input {
 		display: flex;
 		justify-content: space-between;
-		width: 243px;
+		align-items: center;
 		height: 30px;
 		border-radius: 2px;
 		color: $dark-gray;
 		border: 1px solid $light-gray;
-		padding: 6px 12px;
+		padding: 6px 8px 6px 12px;
+		.clear-input {
+				margin-left: auto;
+				margin-right: 8px;
+				.svg-icon {
+					fill: transparent;
+					height: 8px;
+					width: 8px;
+				}
+			}
 		&:hover {
 			border-color: $gray;
 			.clear-input {
-				&:before {
-					cursor: pointer;
-					content: 'x';
+				.svg-icon {
+					fill: initial;
 				}
 			}
 		}
 		.datepicker-text {
 			cursor: pointer;
-			width: 170px;
 			@extend .body-1;
 			&.placeholder {
 				color: $light-gray;
@@ -43,9 +55,13 @@
 		.calendar-input {
 			fill: $light-gray;
 		}
+		.svg-icon-wrapper.calendar {
+			.svg-icon {
+				fill: $dark-gray;
+				width: 17px;
+				height: 17px;
+			}
+		}
 	}
-
-
-
 }
 
diff --git a/openecomp-ui/resources/scss/components/_dualListBox.scss b/openecomp-ui/resources/scss/components/_dualListBox.scss
index 4a1a940..4353ab3 100644
--- a/openecomp-ui/resources/scss/components/_dualListBox.scss
+++ b/openecomp-ui/resources/scss/components/_dualListBox.scss
@@ -7,8 +7,7 @@
 	}
 
   .dual-search-multi-select-section {
-    $multi-select-box-width: 398px;
-    width: $multi-select-box-width;
+    flex: 1;
     .dual-text-box-search-title, .dual-list-box-multi-select-text {
       @extend .body-1;
       color: $dark-gray;
diff --git a/openecomp-ui/resources/scss/components/_notifications.scss b/openecomp-ui/resources/scss/components/_notifications.scss
index 7165e57..5b10dee 100644
--- a/openecomp-ui/resources/scss/components/_notifications.scss
+++ b/openecomp-ui/resources/scss/components/_notifications.scss
@@ -18,6 +18,12 @@
     .modal-content .modal-header {
       border-top: 3px solid $red;
     }
+	}
+	
+	&.negative {
+    .modal-content .modal-header {
+      border-top: 3px solid $red;
+    }
   }
 
   &.warning {
diff --git a/openecomp-ui/resources/scss/components/_selectActionTable.scss b/openecomp-ui/resources/scss/components/_selectActionTable.scss
index 4e42b6c..79a5432 100644
--- a/openecomp-ui/resources/scss/components/_selectActionTable.scss
+++ b/openecomp-ui/resources/scss/components/_selectActionTable.scss
@@ -72,6 +72,11 @@
 				fill: $green;
 			  }
 			}
+			.svg-icon-wrapper.hideDelete {
+				.svg-icon {
+					fill: $white;
+				}
+			}
 			.select-action-table-row {
 				display: flex;
 				flex: 1;
@@ -80,6 +85,7 @@
 				&.has-error {
 					border-color: $red;
 				}
+
 				.select-action-table-cell {
 					flex: 1;
 					border-right: 1px solid;
@@ -127,10 +133,9 @@
 						border-bottom: 1px solid $blue;
 						overflow: auto;
 						.Select-menu {
-							display: inline-block;
 							.Select-option {
-								width: 100%;
-								display: inline-block;
+								overflow: hidden;
+								text-overflow: ellipsis;
 								border-bottom: 1px solid $light-gray;
 								&:hover {
 									background-color: $blue;
diff --git a/openecomp-ui/resources/scss/components/_validationForm.scss b/openecomp-ui/resources/scss/components/_validationForm.scss
index 46269ad..e4aac32 100644
--- a/openecomp-ui/resources/scss/components/_validationForm.scss
+++ b/openecomp-ui/resources/scss/components/_validationForm.scss
@@ -7,12 +7,10 @@
     .validation-radio-wrapper {
       position: relative;
     }
-    .nav-tabs {
+    .sdc-tabs {
       position: relative;
-      .invalid-tab:not(.active) {
-        a {
+      .invalid-tab:not(.sdc-tab-active) {
           color: $red;
-        }
       }
     }
     .validation-error-message {
diff --git a/openecomp-ui/resources/scss/modules/_entitlementPools.scss b/openecomp-ui/resources/scss/modules/_entitlementPools.scss
index 0e0a72a..ad0bb77 100644
--- a/openecomp-ui/resources/scss/modules/_entitlementPools.scss
+++ b/openecomp-ui/resources/scss/modules/_entitlementPools.scss
@@ -1,6 +1,5 @@
 
-.entitlement-pools-list-editor {
-
+.entitlement-pools-list-editor {  
   .list-editor-view-list {
     .list-editor-item-view {
       min-height: 110px;
@@ -8,13 +7,9 @@
     }
     .list-editor-item-view-field {
 
-      .entitlement-pools-count, .entitlement-parameters, .contract-number, .type{
+      .entitlement-pools-count, .contract-number, .type{
         color: $purple;
       }
-      .entitlement-parameters {
-        @include ellipsis;
-        margin-bottom: 2px;
-      }
       .entitlement-pools-count {
         @extend .heading-1;
         margin-top: -10px;
@@ -25,22 +20,29 @@
 }
 
 .entitlement-pools-modal {
-  .validation-form-content {
-    padding: 50px;
-  }
   .modal-body {
     padding: 0;
   }
+	.sdc-tab-content {
+		margin: 0;
+	}
   .entitlement-pools-form {
-    .tab-content {
-      padding: 50px;
-    }
 		.threshold-section {
 			display: flex;
 			justify-content: space-between;
 			.validation-input-wrapper {
 				flex: 0 0 46%;
 			}
+    }
+    .date-section {
+			display: flex;
+			justify-content: space-between;
+			.validation-input-wrapper {
+				flex: 0 0 46%;
+			}
+		}
+		.validation-form-content {
+			padding: 20px 50px;
 		}
   }
   .validation-buttons {
diff --git a/openecomp-ui/resources/scss/modules/_featureGroup.scss b/openecomp-ui/resources/scss/modules/_featureGroup.scss
index 8c45d8e..9d395f9 100644
--- a/openecomp-ui/resources/scss/modules/_featureGroup.scss
+++ b/openecomp-ui/resources/scss/modules/_featureGroup.scss
@@ -32,6 +32,14 @@
       margin-top: 55px;
       color: $dark-gray;
     }
+		.validation-form-content {
+			padding: 0;
+		}
+
+		.nav.nav-tabs {
+			padding-left: 50px;
+		}
+		
     .tab-content {
       padding: 50px;
       .field-section {
diff --git a/openecomp-ui/resources/scss/modules/_licenseKeyGroup.scss b/openecomp-ui/resources/scss/modules/_licenseKeyGroup.scss
index 5de757b..d072849 100644
--- a/openecomp-ui/resources/scss/modules/_licenseKeyGroup.scss
+++ b/openecomp-ui/resources/scss/modules/_licenseKeyGroup.scss
@@ -16,23 +16,3 @@
     }
   }
 }
-
-.license-key-groups-modal {
-  .modal-body {
-    padding: 0;
-  }
-  .license-key-groups-form {
-    .validation-form-content {
-      padding: 50px;
-      .field-section {
-        @extend .body-2-semibold;
-        margin-bottom: 23px;
-        width: 400px;
-        color: $black;
-      }
-    }
-    .validation-buttons {
-      padding: 20px 50px;
-    }
-  }
-}
diff --git a/openecomp-ui/resources/scss/modules/_licenseModel.scss b/openecomp-ui/resources/scss/modules/_licenseModel.scss
index 3d65be6..fab091fe 100644
--- a/openecomp-ui/resources/scss/modules/_licenseModel.scss
+++ b/openecomp-ui/resources/scss/modules/_licenseModel.scss
@@ -1,20 +1,53 @@
-.license-model-type-modal {
+.license-model-modal {
   .modal-body {
     padding: 0;
   }
-  .validation-form-content {
-    padding: 50px;
-    .field-section {
-      @extend .body-2-semibold;
-      margin-bottom: 23px;
-      width: 400px;
-      color: $black;
-    }
-    textarea {
-      height: 107px;
-    }
+	.modal-header {
+		border-bottom: none;
+		padding-bottom: 30px;
+	}
+  .modal-body {
+    padding: 0;
   }
-  .validation-buttons {
-    padding: 20px 50px;
-  }
+	.sdc-tabs-list {
+		padding-left: 50px;
+		border-bottom: 1px solid $tlv-light-gray;
+		display: flex;
+		align-items: baseline;
+	}
+	.sdc-tab-content {
+		margin-top: 0;
+	}
+	.add-limit-button {
+		margin-left: auto;
+		margin-right: 50px;
+		padding-right: 0;
+		text-align: end;
+	}
+	.license-model-form {
+    .validation-form-content {
+      padding: 20px 50px;
+		}
+    .validation-buttons {
+      padding: 20px 50px;
+    }
+		&.license-agreement-form, &.feature-group-form {
+			.validation-form-content {
+				padding: 0;
+			}
+			.sdc-tab-content {
+				padding: 20px 50px;
+			}
+		}
+	}
+	.license-model-modal-buttons {
+		padding: 21px 50px;
+    display: flex;
+    justify-content: flex-end;
+		background-color: $tlv-gray;
+		margin-top: 2px;
+    .sdc-button {
+      margin-left: 20px;
+    }
+	}
 }
diff --git a/openecomp-ui/resources/scss/modules/_licenseModelLimits.scss b/openecomp-ui/resources/scss/modules/_licenseModelLimits.scss
new file mode 100644
index 0000000..32fd128
--- /dev/null
+++ b/openecomp-ui/resources/scss/modules/_licenseModelLimits.scss
@@ -0,0 +1,121 @@
+.license-model-limits-view {
+	max-height: 490px;
+	overflow: auto;
+
+	.limit-editor-title {
+		padding: 10px 50px;
+		background-color: $blue;
+		color: $white;
+
+	}
+	.list-editor-view-add-title {
+		margin-right: 20px;
+	}
+
+	.no-limits-text {
+		padding-left: 50px;
+	}
+
+	.list-editor-view {
+		.list-editor-view-header {
+			border-bottom: none;
+			padding-top: 30px;
+			padding-bottom: 0;
+		}
+
+		.list-editor-view-list-scroller {
+			margin-top: 0;
+			margin-bottom: 30px;
+		}
+		.list-editor-view-list {
+			width: 100%;
+			.list-editor-item-view {
+				min-height: 50px;
+				height: 50px;
+				background-color: $tlv-light-gray;
+				border-color: transparent;
+				margin: 1px 0;
+				.list-editor-item-view-content {
+					padding-left: 0;
+				}
+				.svg-icon-wrapper.trashO {
+					margin-bottom: 0;
+					margin-right: 50px;
+					.svg-icon {
+						fill: $gray;
+						height: 16px;
+						width: 16px;
+						&:hover {
+								fill: $dark-gray;
+							}
+					}
+				}
+				&.selectable {
+					&:hover {
+						background-color: darken($tlv-light-gray, 4%);
+						cursor: pointer;
+					}
+				}
+				&:hover {
+					border-color: transparent;
+					cursor: default;
+				}
+				.list-editor-item-view-content {
+					.list-editor-item-view-field {
+						display: flex;
+    				align-items: center;
+						white-space: nowrap;
+						
+						&.limit-name {
+							.text.name {
+								@extend .body-1-semibold;
+								color: $blue;
+								text-transform: uppercase;
+								padding: 0px 10px;
+							}
+							
+							border-right: 1px solid $light-gray;
+							margin-right: 22px;
+							flex: 0.4;
+							display: flex;
+							justify-content: center;
+						}
+
+						&.limit-description {
+							max-width: 300px;
+							margin-right: 22px;
+						}
+
+						&.limit-metric-details {
+							max-width: 300px;
+						}
+
+						.text.description, .text.name {
+							overflow: hidden;
+							text-overflow: ellipsis;
+							white-space: nowrap;
+						}
+					}
+
+				}			
+			}
+		}
+	}
+	.limit-editor{
+		.limit-editor-form {
+			.limit-editor-form-grid-section {
+				padding-bottom: 0;
+			}
+			.validation-form-content {
+				padding: 21px 45px;
+			}
+			.limit-editor-buttons {			
+				display: flex;
+				justify-content: flex-end;
+				.sdc-button {
+				margin-left: 20px;
+				}
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/openecomp-ui/resources/scss/modules/_licenseModelOverview.scss b/openecomp-ui/resources/scss/modules/_licenseModelOverview.scss
index 5c74e82..1c133a1 100644
--- a/openecomp-ui/resources/scss/modules/_licenseModelOverview.scss
+++ b/openecomp-ui/resources/scss/modules/_licenseModelOverview.scss
@@ -1,3 +1,21 @@
+$list-indentation: 20px;
+$arrow-margin: 30px;
+$icon-margin: 30px;
+$arrow-element-width: 30px;
+$list-item-padding: 15px;
+
+@mixin overview-tile-shadow() {
+	@include box-shadow(0.5px 0.8px 4px 0 rgba(24, 24, 25, 0.05));
+}
+
+// @mixin vlm-list-item-inset($color) {
+// 	@include box-shadow(inset 6px 0 0 0 $color);
+// }
+
+$la-color: $dark-blue;
+$fg-color: $blue;
+$lkg-ep-color: $light-blue;
+
 .license-model-overview {
   .overview-top-section {
     .overview-title{
@@ -20,60 +38,61 @@
       .vendor-data-view {
         @extend .flex-column;
         background-color: $tlv-gray;
-        padding: 20px 30px;
+        padding: 13px 30px;
         border: 1px solid $tlv-light-gray;
-        @include border-shadow();
+        @include overview-tile-shadow();
         .vendor-title {
           margin-top:5px;
         }
         .vendor-name {
           @extend .heading-4-semibold;
           text-transform: none;
-          padding-bottom: 15px;
+          padding-bottom: 10px;
           border-bottom: 1px solid $tlv-light-gray;
         }
-        .vendor-description {
+        .vendor-description, .vendor-description-readonly {
           @extend .flex;
           @extend .body-1;
           justify-content: space-between;
-          margin-top: 10px;
           overflow: hidden;
-          border: 1px solid transparent;
-          position: relative;
-          left: -6px;
-          width: 101%;
+					position: relative;
+					flex: initial;
+        }
 
+        &:not(.read-only) .vendor-description {
+          border: 1px solid transparent;
+          padding: 2px 0 2px 6px;
+          margin-top: 10px;
+
+          $hover-padding-right: 16px;
+          @include percent-plus-value($property: width, $percent: 100%, $value: -$hover-padding-right); // compensate for padding added on hover
           &:hover {
-            border: 1px solid $tlv-light-gray;
-            background-position: 99% 12%;
-            background-size: 15px;
-            padding-right: 20px;
+            padding-right: $hover-padding-right;
+            width: 100%;
+            border: 1px solid $light-gray;
+            cursor: pointer;
+
+            background-position: calc(100% - 4px) 4px;
+            background-size: 14px;
             background-image: url($pencil-icon);
             background-repeat: no-repeat;
-            cursor: pointer;
+            background-color: white;
+
+            .description-data:after {
+              background: white;
+            }
           }
-          &.read-only {
-            border: none;
-          }
-					.description-data {
-						@include multiline-ellipsis($lineCount: 3, $bgColor: $tlv-gray);
-					}
         }
 
         .vendor-description-readonly {
-          @extend .flex;
-          @extend .body-1;
-          justify-content: space-between;
-          margin-top: 10px;
-          overflow: hidden;
-          border: none;
-          height: 49px;
-          margin-bottom: 15px;
-          padding: 6px;
-          position: relative;
-          left:-6px;
+          margin-top: 16px;
         }
 
+				.description-data {
+					@include multiline-ellipsis($lineCount: 3, $bgColor: $tlv-gray);
+					flex: initial;
+				}
+
         .vendor-description-edit {
           @extend .flex;
           flex-direction: column;
@@ -84,6 +103,7 @@
           width: 101%;
           textarea {
             padding-left: 6px;
+            resize: vertical;
           }
           .buttons-row {
             @extend .flex;
@@ -133,12 +153,12 @@
         margin-left: 20px;
         justify-content: space-between;
         border: 1px solid $tlv-light-gray;
-        @include border-shadow();
+        @include overview-tile-shadow();
         background-color: $tlv-gray;
         .summary-count-item {
           @extend .flex;
-          @extend .heading-5-semibold;
-          padding-top: 5px;
+					@extend .heading-5-semibold;
+					align-items: center;
           padding-left: 45px;
           padding-right: 45px;
           border-bottom: 1px solid $tlv-light-gray;
@@ -184,9 +204,10 @@
       }
     }
   }
-  .vlm-list-tab-panel
-  {
-    @extend .flex;
+  .vlm-list-tab-panel {
+		
+		@extend .flex;
+		margin-bottom: 7px;
     .section-title {
       flex: 1;
     }
@@ -236,81 +257,33 @@
       }
       .vlm-list-view {
         .vlm-list {
-          .vlm-list-item {
-            @include border-shadow();
-            .list-item-icon-col {
-              display: flex;
-              flex-direction: column;
-              justify-content: center;
-              margin-left: 5px;
-            }
-            &.vlm-list-item-la {
-              margin-left: 0;
-              .list-item-icon-col {
-                padding-left: 22px;
+          .vlm-list-item.orphan-list-item {
+						@include overview-tile-shadow();
+						margin-left: 0;
+						
+						.vlm-list-item-title {
 
-              }
-              .la-icon {
-                background-color: $gray;
-                border-color: $gray;
-              }
-              .list-item-section {
-                &:first-child {
-                  background-color: gray;
-                }
-              }
-            }
-            &.vlm-list-item-fg {
-              cursor: default;
-              margin-left: 0;
-              border-left: 10px solid $gray;
-              .list-item-arrow-col {
-                margin-left: 0px;
-              }
-              .list-item-icon-col {
-                padding-left: 22px;
-              }
-              .fg-icon {
-                background-color: $gray;
-                border-color: $gray;
-              }
-            }
-            &.vlm-list-item-ep {
-              margin-left: 0;
-              border-left: 10px solid $gray;
-              .list-item-icon-col {
-                padding-left: 22px;
-              }
-              .ep-icon {
-                background-color: $gray;
-                border-color: $gray;
-              }
-              .list-item-section {
-                &:first-child {
-                  display: flex;
-                  color: $white;
-                  min-width: 34px;
-                }
-              }
-            }
-            &.vlm-list-item-lkg {
-              margin-left: 0;
-              border-left: 10px solid $gray;
-              .list-item-icon-col {
-                padding-left: 22px;
-              }
-              .lkg-icon {
-                background-color: $gray;
-                border-color: $gray;
-              }
-              .list-item-section {
-                &:first-child {
-                  display: flex;
-                  color: $white;
-                  min-width: 34px;
-                }
-              }
-            }
+							.item-name {
+								color: $dark-gray;
+							}
+						}
+						.list-item-icon-col {
+							.overview-list-icon {
+								background-color: $gray;
+								border-color: $gray;
+							}
+						}
+						.list-item-section {
+							&:first-child {
+								display: flex;
+								color: $white;
+								min-width: $arrow-element-width;
+							}
+							&.list-item-icon-col {
+								margin-left: 65px;
+								margin-right: 65px - $list-item-padding;
+							}
+						}
           }
         }
       }
@@ -328,18 +301,32 @@
           @extend .flex;
           border: 1px solid $tlv-light-gray;
           margin-bottom: 0px;
-          cursor: pointer;
-          .list-item-icon-col {
-            display: flex;
-            flex-direction: column;
-            justify-content: center;
-
-          }
+          .clickable {
+						cursor: pointer;
+					}
+          
           .list-item-section {
-            padding: 10px;
+						.count-value {
+							@extend .body-3;
+						}
+						&.list-item-icon-col {
+							display: flex;
+							flex-direction: column;
+							justify-content: center;
+							align-items: center;
+							padding: 0;
+							margin-right: 40px - $list-item-padding;
+							margin-left: $icon-margin;
+							.overview-list-icon {
+								@extend .body-2;
+							}
+						}
+						padding: 15px;
+						&.list-item-arrow-col {
+							padding: 0;
+						}
             .children-count {
               @extend .body-1;
-              line-height: 20px;
               color: $gray;
               padding-left: 5px;
               .count-value {
@@ -347,9 +334,18 @@
               }
             }
             .additional-data {
-              padding-left: 50px;
+							padding-left: 60px;
+							display: flex;
+							flex-direction: column;
+							justify-content: space-between;
+							*:last-child {
+								margin-top: 20px;
+							}
+							*:only-child {
+								margin-top: 0;
+							}
               .additional-data-name {
-                @extend .body-1-semibold;
+                @extend .body-2-semibold;
               }
             }
             .additional-data-col-border {
@@ -359,128 +355,140 @@
             }
           }
           .list-item-additional-data-col {
-            @extend .body-1;
+            @extend .body-2;
             @extend .flex;
-            align-items: center;
-            flex: 0.8;
+            align-items: stretch;
+						flex: 0.8;
+						margin-left: 30px;
+						padding-top: 17px;
+						padding-bottom: 11px;
           }
           .arrow-icon {
-            align-self: center;
+						align-self: center;
+						
           }
           .vlm-item-info {
             flex: 1;
           }
           .vlm-list-item-title {
-            @extend .flex;
+						@extend .flex;
+						align-items: baseline;
             .item-name {
               @extend .heading-5-semibold;
               flex: 0 1 auto;
-              margin-bottom: 4px;
+							margin-bottom: 4px;
+							text-transform: uppercase;
             }
           }
           .vlm-list-item-description {
             @extend .body-1;
-            overflow: hidden;
+						@include multiline-ellipsis($lineCount: 3, $bgColor: $tlv-gray);
             max-height: 38px;
           }
           &.vlm-list-item-la {
             margin-top: 10px;
-            border-left: 10px solid $dark-blue;
             .la-icon {
-              @include create-circle($circle-icon-size,$dark-blue,'LA');
+              @include create-circle($circle-icon-size,$la-color,'LA');
               color: $white;
-            }
+						}
+						.vlm-list-item-title {
+							.item-name {
+								color: $la-color;
+							}
+						}
             .list-item-section {
 
               &:first-child {
                 display: flex;
-                color: $dark-blue;
-                min-width: 34px;
+                color: $la-color;
+                min-width: $arrow-element-width;
               }
             }
             .list-item-arrow-col {
               flex: 0.01;
-              margin-left: 14px;
+							margin-left: $arrow-margin;
+							justify-content: center;
             }
-            .list-item-icon-col {
-              padding-left: 14px;
-              padding-right: 30px;
-              align-items: center;
-            }
-
           }
           &.vlm-list-item-fg {
-            border-left: 10px solid $blue;
-            margin-left: 20px;
-            margin-top: 10px;
+            margin-left: $list-indentation;
+						margin-top: 10px;
+						.fg-pipeline-separator {
+							color: $dark-gray;
+							padding: 0 5px;
+						}
+						.list-item-icon-col {
+							margin-left: 29px;
+						}
             .fg-icon {
-              @include create-circle($circle-icon-size,$blue,'FG');
+              @include create-circle($circle-icon-size,$fg-color,'FG');
               color: $white;
-            }
+						}
+						
+						.vlm-list-item-title {
+							.item-name {
+								color: $fg-color;
+							}
+						}
             .list-item-section {
               &:first-child {
                 display: flex;
-                color: $blue;
-                min-width: 34px;
+                color: $fg-color;
+                min-width: $arrow-element-width;
 
               }
             }
             .list-item-arrow-col {
               flex: 0.01;
-              margin-left: 26px;
-            }
-            .list-item-icon-col {
-              padding-left: 22px;
-              padding-right: 30px;
-              align-items: center;
+							margin-left: $arrow-margin - $list-indentation;
+							padding-left: $list-indentation;
             }
           }
           &.vlm-list-item-ep {
-            margin-left: 40px;
+            margin-left: $list-indentation * 2;
             margin-top: 10px;
-            border-left: 10px solid $light-blue;
             cursor: default;
             .ep-icon {
-              @include create-circle($circle-icon-size,$light-blue,'EP');
+              @include create-circle($circle-icon-size,$lkg-ep-color,'EP');
               color: $white;
-            }
-            .list-item-icon-col {
-              padding-left: 72px;
-              padding-right: 30px;
-              align-items: center;
-            }
+						}
+						.vlm-list-item-title {
+							.item-name {
+								color: $lkg-ep-color;
+							}
+						}
             .list-item-section {
               &:first-child {
                 display: none;
-              }
+							}
+							&.list-item-icon-col {
+								margin-left: 52px;
+							}
             }
-            .list-item-additional-data-col {
-              margin-right: 20px;
-            }
+						
           }
           &.vlm-list-item-lkg {
             margin-top: 10px;
-            margin-left: 40px;
-            border-left: 10px solid $light-blue;
+            margin-left: $list-indentation * 2;
             cursor: default;
             .lkg-icon {
-              @include create-circle($circle-icon-size,$light-blue,'KG');
+              @include create-circle($circle-icon-size,$lkg-ep-color,'KG');
               color: $white;
-            }
-            .list-item-icon-col {
-              padding-left: 72px;
-              padding-right: 30px;
-              align-items: center;
-            }
+						}
+						.vlm-list-item-title {
+							.item-name {
+								color: $lkg-ep-color;
+							}
+						}
             .list-item-section {
               &:first-child {
                 display: none;
-              }
+							}
+							&.list-item-icon-col {
+								margin-left: 52px;
+							}
 
             }
-            .list-item-additional-data-col {
-              margin-right: 20px;
-            }
           }
         }
 
diff --git a/openecomp-ui/resources/scss/modules/onboardingCatalog/_catalogTile.scss b/openecomp-ui/resources/scss/modules/onboardingCatalog/_catalogTile.scss
index 07f86ab..87a852f 100644
--- a/openecomp-ui/resources/scss/modules/onboardingCatalog/_catalogTile.scss
+++ b/openecomp-ui/resources/scss/modules/onboardingCatalog/_catalogTile.scss
@@ -48,6 +48,9 @@
 		align-self: baseline;
 		color: $gray;
 		line-height: 10px;
+		&:first-letter {
+      text-transform: capitalize;
+    }
 		@include ellipsis(auto, inline-block, 178px);
 	  }
 
@@ -56,7 +59,10 @@
 	  @extend .heading-5-semibold;
 	  color: $black;
 	  @include ellipsis(auto, inline-block, 175px);
-	  line-height: inherit;
+		line-height: inherit;
+		&:first-letter {
+			text-transform: capitalize;
+		}
 	}
   }
   .catalog-tile-icon {
diff --git a/openecomp-ui/resources/scss/modules/onboardingCatalog/_vendorTile.scss b/openecomp-ui/resources/scss/modules/onboardingCatalog/_vendorTile.scss
index 5972bb2..d490fd6 100644
--- a/openecomp-ui/resources/scss/modules/onboardingCatalog/_vendorTile.scss
+++ b/openecomp-ui/resources/scss/modules/onboardingCatalog/_vendorTile.scss
@@ -24,7 +24,10 @@
   .catalog-tile-top {
 	.catalog-tile-item-name {
 	  margin-top: 21px;
-	  line-height: inherit;
+		line-height: inherit;
+		&:first-letter {
+      text-transform: capitalize;
+    }	
 	}
 	.catalog-tile-vsp-count {
 	  @extend .body-3-semibold;
diff --git a/openecomp-ui/resources/scss/onboarding.scss b/openecomp-ui/resources/scss/onboarding.scss
index d7d4586..b49a7cb 100644
--- a/openecomp-ui/resources/scss/onboarding.scss
+++ b/openecomp-ui/resources/scss/onboarding.scss
@@ -12,53 +12,73 @@
 div[data-reactroot].customized-date-picker-calendar {
   @import "common/variables";
   @import "common/typography";
-  border-radius: 2px;
   border-color: $light-gray;
   margin-top: -8px;
+	color: $black;
   .react-datepicker__triangle {
       margin-top: 0px;
   }
   .react-datepicker__navigation--previous {
-      border: none;      
-      width: 15px;
-      height: 15px; 
+      border: none;
+      width: 12px;
+      height: 12px;
       margin-top: 2px;
-      content: url(../images/angle-left.svg);               
+      content: url(../images/angle-left.svg);
   }
   .react-datepicker__navigation--next {
-      border: none;      
-      width: 15px;
-      height: 15px;
-      margin-top: 2px;      
-      content: url(../images/angle-right.svg);      
+      border: none;
+      width: 12px;
+      height: 12px;
+      margin-top: 2px;
+      content: url(../images/angle-right.svg);
   }
-  .react-datepicker__month-container {    
+  .react-datepicker__month-container {
 		.react-datepicker__header {
 			background-color: $background-gray;
       border-bottom: none;
       .react-datepicker__current-month {
-        @extend .heading-5;
+        @extend .body-1-semibold;
         background-color: $background-gray;
-        margin-bottom: 10px;         
+        margin-bottom: 10px;
       }
       .react-datepicker__day-names {
-        @extend .heading-5;
+        @extend .body-1;
         background-color: $white;
       }
 		}
-    .react-datepicker__day--selected {
-      @extend .heading-5;
-      border-radius: 20px;
+    .react-datepicker__day--selected, .react-datepicker__day--keyboard-selected {
+      @extend .body-1;
       background-color: $blue;
-      &:hover {
-        background-color: $dark-blue;
-      }
+			color: $white;
     }
     .react-datepicker__day {
-      @extend .heading-5;
-      &:hover {
-        border-radius: 20px;
-      }
+			border-radius: 0px;
+			margin: 0;
+			flex: 1;
+      @extend .body-1;
+    }
+
+		.react-datepicker__day--in-range, .react-datepicker__day--in-selecting-range {
+			background-color: $tlv-hover;
+			color: $black;
+			&.react-datepicker__day--selected, &.react-datepicker__day--keyboard-selected, &.react-datepicker__day--range-start, &.react-datepicker__day--range-end  {
+				background-color: $blue;
+				color: $white;
+			}
+			&.react-datepicker__day--selecting-range-start, &.react-datepicker__day--selecting-range-end {
+				background-color: lighten($blue, 40%);
+				color: $black;
+			}
+			&.react-datepicker__day--selecting-range-start.react-datepicker__day--range-start,
+			&.react-datepicker__day--selecting-range-end.react-datepicker__day--range-end,
+			&.react-datepicker__day--selecting-range-start.react-datepicker__day--keyboard-selected {
+				background-color: $blue;
+				color: $white;
+			}
+		}
+
+		.react-datepicker__week {
+			display: flex;
     }
 	}
 }
@@ -69,7 +89,7 @@
   @import "common/typography";
 
   &.in {
-	opacity: 1;
+  	opacity: 1;
   }
   &.validation-error-message {
     &.bottom {
@@ -94,28 +114,33 @@
     }
   }
   &.bottom {
-	.tooltip-arrow {
-	  border-bottom-color: $dark-gray !important;
-	}
+    .tooltip-arrow {
+      border-bottom-color: $dark-gray !important;
+    }
   }
   &.top {
-	.tooltip-arrow {
-	  border-top-color: $dark-gray !important;
-	}
+    .tooltip-arrow {
+      border-top-color: $dark-gray !important;
+    }
   }
   .tooltip-inner {
-	max-width: 100%;
-	background-color: $dark-gray;
+    @extend .body-1;
+    max-width: 100%;
+    background-color: $dark-gray;
+    padding: 6px 9px;
+    &:first-letter {
+      text-transform: capitalize;
+    }
   }
 
   // activity log tooltip
   &.activity-log-message-tooltip {
-	@include base-font-regular;
-	font-size: $body-font-2;
-	.message-block {
-	  text-align: left;
-	  padding: 3px 12px;
-	}
+	  @include base-font-regular;
+    font-size: $body-font-2;
+    .message-block {
+      text-align: left;
+      padding: 3px 12px;
+    }
   }
   //dependency table error tooltip
   &.select-action-table-error-tooltip{
@@ -136,4 +161,11 @@
       font-size: $body-font-2;
     }
   }
+
+  // for read-only mode, vendor description in VLM overview
+  &.vendor-description-tooltip {
+    .tooltip-inner {
+      max-width: 600px;
+    }
+  }
 }
diff --git a/openecomp-ui/runLocalFE.cmd b/openecomp-ui/runLocalFE.cmd
deleted file mode 100644
index ee718f2..0000000
--- a/openecomp-ui/runLocalFE.cmd
+++ /dev/null
@@ -1,38 +0,0 @@
-@REM /*!
-@REM  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
-@REM  *
-@REM  * Licensed under the Apache License, Version 2.0 (the "License");
-@REM  * you may not use this file except in compliance with the License.
-@REM  * You may obtain a copy of the License at
-@REM  *
-@REM  * http://www.apache.org/licenses/LICENSE-2.0
-@REM  *
-@REM  * Unless required by applicable law or agreed to in writing, software
-@REM  * distributed under the License is distributed on an "AS IS" BASIS,
-@REM  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
-@REM  * or implied. See the License for the specific language governing
-@REM  * permissions and limitations under the License.
-@REM  */
-
-@echo off
-
-SETLOCAL
-
-set uiDir=%cd%
-set currentDir=%cd%
-if not ("%1" == "") set uiDir=%1
-
-echo check npm version:
-call npm -version
-if errorlevel 1 (
-    echo install node with npm from https://nodejs.org/en/download/
-	goto done
-)
-echo npm is installed
-echo one more check...
-call npm list prompt
-if errorlevel 1 (
-    npm install prompt
-)
-echo ready to run
-call node runLocalFE.js
diff --git a/openecomp-ui/runLocalFE.js b/openecomp-ui/runLocalFE.js
deleted file mode 100644
index 1205aa4..0000000
--- a/openecomp-ui/runLocalFE.js
+++ /dev/null
@@ -1,104 +0,0 @@
-/*!
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing
- * permissions and limitations under the License.
- */
-
-var exec = require('child_process');
-var prompt = require('prompt');
-var fs = require('fs');
-
-
-function runNpm(target, dir) {
-	console.log('\n---> npm ' + target);
-	let options = {stdio:[0,1,2]};
-	if (dir) options.cwd = dir;
-	exec.execSync("npm " + target,options);
-}
-
-function npmInstallAll() {
-	setNpmconfig();
-	if (!fs.existsSync('../dox-sequence-diagram-ui/node_modules')) {
-		console.log('--> first time installing dox-sequence-diagram-ui');
-		runNpm('install', '../dox-sequence-diagram-ui');
-	};
-	runNpm('install');
-	// just to make sure restful js is installed properly
-	runNpm('install jquery', 'node_modules/restful-js');
-}
-
-function getDevConfig() {
-	var content=fs.readFileSync('./devConfig.json');
-	var data=JSON.parse(content);
-	console.log('Current ATT server is set to: ' + data.proxyATTTarget);
-	if (!data.proxyTarget) {
-		console.log('Current onboarding server defaults to the ATT server');
-	} else {
-		console.log('Current onboarding server set to: ' + data.proxyTarget);
-	}
-	return data;
-}
-
-function setNpmconfig() {
-	exec.execSync("npm config set proxy http://genproxy.amdocs.com:8080");
-	exec.execSync("npm config set https_proxy http://genproxy.amdocs.com:8080");
-}
-
-// getting the run details before starting to work
-prompt.start();
-prompt.get([{
-		name:'runType',
-		type:'number',
-		default:1,
-		description: 'Choose run: 1-test and build, 2- run frontend server '
-	}], function (err, result) {
-	if (result.runType === 2) {
-		console.log('--> Reading the configuration for the local server');
-		if (!fs.existsSync('./devConfig.json')) {
-			console.log('First time - setting up the devConfig.json file');
-			fs.writeFileSync('./devConfig.json', fs.readFileSync('./devConfig.defaults.json'));
-		}
-		let data = getDevConfig();
-		let attProxyField = {
-			name:'attProxyTarget',
-			description:'ATT server'
-		};
-		let proxyField = {
-			name:'proxyTarget',
-			description:'onboarding server, \'null\' to reset'
-		};
-		if (data.proxyATTTarget) attProxyField.default = data.proxyATTTarget;
-		if (data.proxyTarget) proxyField.default = data.proxyTarget;
-		prompt.get([ attProxyField, proxyField], function (err,result) {
-				data.proxyATTTarget = result.attProxyTarget;
-				if(result.proxyTarget) {
-					if (result.proxyTarget === 'null') {
-						if (data.proxyTarget) delete data.proxyTarget;
-					} else {
-						data.proxyTarget = result.proxyTarget;
-					}
-				}
-				fs.writeFileSync('./devConfig.json', JSON.stringify(data, null, 2));
-				getDevConfig();
-				console.log('FE server will be answering on: http://localhost:9000/sdc1/proxy-designer1#/onboardVendor');
-				npmInstallAll();
-				runNpm("start");
-			}
-		);
-	} else {
-		npmInstallAll();
-		runNpm("run build");
-		runNpm("run test");
-	}
-});
-
diff --git a/openecomp-ui/src/index.html b/openecomp-ui/src/index.html
index d4fab4d..6a9265c 100644
--- a/openecomp-ui/src/index.html
+++ b/openecomp-ui/src/index.html
@@ -11,4 +11,4 @@
 
 </body>
 </html>
-npm
+
diff --git a/openecomp-ui/src/nfvo-components/datepicker/Datepicker.jsx b/openecomp-ui/src/nfvo-components/datepicker/Datepicker.jsx
index cd39376..f4673c1 100644
--- a/openecomp-ui/src/nfvo-components/datepicker/Datepicker.jsx
+++ b/openecomp-ui/src/nfvo-components/datepicker/Datepicker.jsx
@@ -17,10 +17,10 @@
 		const text = date ? date : placeholderText;
 		const textStyle = date ? '' : 'placeholder';
 		return (
-			<div ref={inputRef} className='datepicker-custom-input'>
-				<div onClick={onClick} className={`datepicker-text ${textStyle}`}>{text}</div>
-				<div onClick={onClear} className='clear-input'/>
-				<SVGIcon onClick={onClick} name='calendar'/>
+			<div onClick={onClick} ref={inputRef} className='datepicker-custom-input'>
+				<div  className={`datepicker-text ${textStyle}`}>{text}</div>
+				{date && <SVGIcon onClick={e => {e.stopPropagation(); onClear();}} name='close' className='clear-input'/>}
+				<SVGIcon name='calendar'/>
 			</div>
 		);
 	}
diff --git a/openecomp-ui/src/nfvo-components/input/validation/InputOptions.jsx b/openecomp-ui/src/nfvo-components/input/validation/InputOptions.jsx
index 6e54254..9b11d27 100644
--- a/openecomp-ui/src/nfvo-components/input/validation/InputOptions.jsx
+++ b/openecomp-ui/src/nfvo-components/input/validation/InputOptions.jsx
@@ -64,7 +64,8 @@
 		const dataTestId = this.props['data-test-id'] ? {'data-test-id': this.props['data-test-id']} : {};
 		let currentMultiSelectedEnum = [];
 		let currentSelectedEnum = '';
-		let {otherInputDisabled} = this.state;
+		let otherInputDisabled = (isMultiSelect && (multiSelectedEnum === undefined || multiSelectedEnum.length === 0 || multiSelectedEnum[0] !== other.OTHER))
+			|| (!isMultiSelect && (selectedEnum === undefined || selectedEnum !== other.OTHER));
 		if (isMultiSelect) {
 			currentMultiSelectedEnum = multiSelectedEnum;
 			if(!otherInputDisabled) {
diff --git a/openecomp-ui/src/nfvo-components/input/validation/Tabs.jsx b/openecomp-ui/src/nfvo-components/input/validation/Tabs.jsx
index 95144b1..6f33536 100644
--- a/openecomp-ui/src/nfvo-components/input/validation/Tabs.jsx
+++ b/openecomp-ui/src/nfvo-components/input/validation/Tabs.jsx
@@ -15,7 +15,7 @@
  */
 import React from 'react';
 import ReactDOM from 'react-dom';
-import {default as BTabs} from 'react-bootstrap/lib/Tabs.js';
+import {default as SDCTabs} from 'sdc-ui/lib/react/Tabs.js';
 import Overlay from 'react-bootstrap/lib/Overlay.js';
 import Tooltip from 'react-bootstrap/lib/Tooltip.js';
 
@@ -33,15 +33,15 @@
 		return React.cloneElement(
 			element,
 			{
-				key: element.props.eventKey,
-				tabClassName: invalidTabs.indexOf(element.props.eventKey) > -1 ? 'invalid-tab' : 'valid-tab'
+				key: element.props.tabId,
+				className: invalidTabs.indexOf(element.props.tabId) > -1 ? 'invalid-tab' : 'valid-tab'
 			}
 		);
 	}
 
 	showTabsError() {
 		const {invalidTabs} = this.props;
-		const showError = ((invalidTabs.length === 1 && invalidTabs[0] !== this.props.activeKey) || (invalidTabs.length > 1));
+		const showError = ((invalidTabs.length === 1 && invalidTabs[0] !== this.props.activeTab) || (invalidTabs.length > 1));
 		return showError;
 	}
 
@@ -50,21 +50,20 @@
 		let {invalidTabs, ...tabProps} = this.props;
 		return (
 			<div>
-				<BTabs {...tabProps} ref='tabsList' id='tabsList' >
+				<SDCTabs {...tabProps} ref='tabsList' id='tabsList' >
 					{this.props.children.map(element => this.cloneTab(element))}
-				</BTabs>
+				</SDCTabs>
 				<Overlay
 					animation={false}
 					show={this.showTabsError()}
 					placement='bottom'
-					containerPadding={50}
 					target={() => {
-						let target = ReactDOM.findDOMNode(this.refs.tabsList).querySelector('ul > li.invalid-tab:not(.active):nth-of-type(n)');
+						let target = ReactDOM.findDOMNode(this.refs.tabsList).querySelector('ul > li.invalid-tab:not(.sdc-tab-active):nth-of-type(n)');
 						return target && target.offsetParent ? target : undefined;
 					}
 					}
 					container={() => {
-						let target = ReactDOM.findDOMNode(this.refs.tabsList).querySelector('ul > li.invalid-tab:not(.active):nth-of-type(n)');
+						let target = ReactDOM.findDOMNode(this.refs.tabsList).querySelector('ul > li.invalid-tab:not(.sdc-tab-active):nth-of-type(n)');
 						return target && target.offsetParent ? target.offsetParent : this;
 					}}>
 					<Tooltip
diff --git a/openecomp-ui/src/nfvo-components/listEditor/ListEditorItemView.jsx b/openecomp-ui/src/nfvo-components/listEditor/ListEditorItemView.jsx
index 8d7c63f..bed304b 100644
--- a/openecomp-ui/src/nfvo-components/listEditor/ListEditorItemView.jsx
+++ b/openecomp-ui/src/nfvo-components/listEditor/ListEditorItemView.jsx
@@ -39,7 +39,7 @@
 				</div>
 				{(onEdit || onDelete) && <div className='list-editor-item-view-controller'>
 					{onEdit && <SVGIcon name='sliders' onClick={() => this.onClickedItem(onEdit)}/>}
-					{onDelete && isAbilityToDelete && <SVGIcon name='trashO' onClick={() => this.onClickedItem(onDelete)}/>}
+					{onDelete && isAbilityToDelete && <SVGIcon name='trashO' data-test-id='delete-list-item' onClick={() => this.onClickedItem(onDelete)}/>}
 				</div>}
 			</div>
 		);
diff --git a/openecomp-ui/src/nfvo-components/panel/versionController/VersionControllerConstants.js b/openecomp-ui/src/nfvo-components/panel/versionController/VersionControllerConstants.js
index 9af1424..c2548e4 100644
--- a/openecomp-ui/src/nfvo-components/panel/versionController/VersionControllerConstants.js
+++ b/openecomp-ui/src/nfvo-components/panel/versionController/VersionControllerConstants.js
@@ -33,7 +33,7 @@
 
 export const statusBarTextMap = keyMirror({
 	'Locked': 'Checked Out',
-	'LockedByUser': '',
+	'LockedByUser': 'Locked',
 	'Available': 'Checked In',
 	'Final': 'Submitted',
 	'READ ONLY': 'Locked'
diff --git a/openecomp-ui/src/nfvo-components/table/SelectActionTable.jsx b/openecomp-ui/src/nfvo-components/table/SelectActionTable.jsx
index 6c04ad7..12e9a06 100644
--- a/openecomp-ui/src/nfvo-components/table/SelectActionTable.jsx
+++ b/openecomp-ui/src/nfvo-components/table/SelectActionTable.jsx
@@ -16,7 +16,7 @@
 				<div className='select-action-table'>
 					<div className='select-action-table-headers'>
 						{columns.map(column => <div key={uuid.create()} className='select-action-table-header'>{i18n(column)}</div>)}
-						{Array(numOfIcons).fill().map(() => <SVGIcon name='trashO' className='dummy-icon' />)}
+						{Array(numOfIcons).fill().map((e, i) => <SVGIcon name='trashO' key={i} className='dummy-icon' />)}
 					</div>
 					<div className='select-action-table-body'>
 						{children}
diff --git a/openecomp-ui/src/nfvo-components/table/SelectActionTableRow.jsx b/openecomp-ui/src/nfvo-components/table/SelectActionTableRow.jsx
index a711b42..7df7d53 100644
--- a/openecomp-ui/src/nfvo-components/table/SelectActionTableRow.jsx
+++ b/openecomp-ui/src/nfvo-components/table/SelectActionTableRow.jsx
@@ -27,12 +27,12 @@
 	return <SVGIcon name='checkCircle'/>;
 }
 
-const SelectActionTableRow = ({children, onDelete, hasError, hasErrorIndication, overlayMsg}) => (
+const SelectActionTableRow = ({children, onDelete, hasError, hasErrorIndication, overlayMsg, showDelete}) => (
 	<div className='select-action-table-row-wrapper'>
 		<div className={`select-action-table-row ${hasError ? 'has-error' : ''}`}>
 			{children}
 		</div>
-		{onDelete && <SVGIcon name='trashO' data-test-id='select-action-table-delete' onClick={onDelete} />}
+		{onDelete && <SVGIcon name='trashO' iconClassName={(showDelete) ? '' : 'hideDelete'} data-test-id='select-action-table-delete' onClick={(showDelete) ? onDelete : null} />}
 		{hasErrorIndication && renderErrorOrCheck({hasError, overlayMsg})}
 	</div>
 );
diff --git a/openecomp-ui/src/nfvo-utils/Validator.js b/openecomp-ui/src/nfvo-utils/Validator.js
index 8fcf24a..1df82a2 100644
--- a/openecomp-ui/src/nfvo-utils/Validator.js
+++ b/openecomp-ui/src/nfvo-utils/Validator.js
@@ -20,7 +20,9 @@
 class Validator {
 	static get globalValidationFunctions() {
 		return {
-			required: value => value !== '',
+			required: value => {				
+				return typeof value === 'string' ? value.replace(/\s+/g, '') !== '' : value !== '';				
+			},
 			requiredChooseOption: value => value !== '',
 			maxLength: (value, length) => ValidatorJS.isLength(value, {max: length}),
 			minLength: (value, length) => ValidatorJS.isLength(value, {min: length}),
@@ -107,6 +109,7 @@
 	}
 
 	static isItemNameAlreadyExistsInList({itemId, itemName, list}) {
+		itemName = itemName.toLowerCase();
 		return list[itemName] && list[itemName] !== itemId;
 	}
 }
diff --git a/openecomp-ui/src/nfvo-utils/getValue.js b/openecomp-ui/src/nfvo-utils/getValue.js
new file mode 100644
index 0000000..e6871c0
--- /dev/null
+++ b/openecomp-ui/src/nfvo-utils/getValue.js
@@ -0,0 +1,32 @@
+/*!
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+import {other as optionInputOther} from 'nfvo-components/input/validation/InputOptions.jsx';
+
+function getValueFromObject(element) {
+	return element.choices && element.choices.length > 0 && element.choices[0] !== '' && element.choices[0] !== optionInputOther.OTHER ||
+			element.other && element.choices[0] === optionInputOther.OTHER ?
+			element : undefined;
+} 
+
+function getValueFromVariable(variable) {
+	return variable ? variable : undefined;
+}
+
+ let getValue = element => {
+	return typeof element === 'object' ? getValueFromObject(element) : getValueFromVariable(element);	
+ };
+
+ export default getValue;
\ No newline at end of file
diff --git a/openecomp-ui/src/sdc-app/common/reducers/PlainDataReducer.js b/openecomp-ui/src/sdc-app/common/reducers/PlainDataReducer.js
index 0bbb5e6..2276984 100644
--- a/openecomp-ui/src/sdc-app/common/reducers/PlainDataReducer.js
+++ b/openecomp-ui/src/sdc-app/common/reducers/PlainDataReducer.js
@@ -16,6 +16,7 @@
 import {actionTypes} from './PlainDataReducerConstants.js';
 import Validator from 'nfvo-utils/Validator.js';
 import forOwn from 'lodash/forOwn.js';
+import {other as optionInputOther} from 'nfvo-components/input/inputOptions/InputOptions.jsx';
 
 function updateDataAndValidateReducer(state = {}, action) {
 	let genericFieldInfoCopy;
@@ -46,6 +47,12 @@
 			forOwn(state.genericFieldInfo,(value, key) => {
 				let val = state.data && state.data[key] ? state.data[key] : '';
 				let result = Validator.validate(key, val, state.genericFieldInfo[key].validations, state, {});
+				if(val.choice !== undefined) {
+					result = Validator.validate(key, val.choice, state.genericFieldInfo[key].validations, state, {});
+				}
+				if(val.choice !== undefined && val.choice === optionInputOther.OTHER) {
+					result = Validator.validate(key, val.other, state.genericFieldInfo[key].validations, state, {});
+				}
 				genericFieldInfoCopy[key] = {...genericFieldInfoCopy[key], isValid: result.isValid, errorText: result.errorText};
 				if (!result.isValid) {
 					formReady = false;
diff --git a/openecomp-ui/src/sdc-app/onboarding/OnboardingActionHelper.js b/openecomp-ui/src/sdc-app/onboarding/OnboardingActionHelper.js
index 2b59361..dad9301 100644
--- a/openecomp-ui/src/sdc-app/onboarding/OnboardingActionHelper.js
+++ b/openecomp-ui/src/sdc-app/onboarding/OnboardingActionHelper.js
@@ -31,8 +31,7 @@
 import SoftwareProductComponentsMonitoringAction from './softwareProduct/components/monitoring/SoftwareProductComponentsMonitoringActionHelper.js';
 import {actionTypes, enums} from './OnboardingConstants.js';
 import SoftwareProductComponentsImageActionHelper from './softwareProduct/components/images/SoftwareProductComponentsImageActionHelper.js';
-import {navigationItems as SoftwareProductNavigationItems, actionTypes as SoftwareProductActionTypes,
-    onboardingMethod as onboardingMethodTypes} from 'sdc-app/onboarding/softwareProduct/SoftwareProductConstants.js';
+import {navigationItems as SoftwareProductNavigationItems, actionTypes as SoftwareProductActionTypes} from 'sdc-app/onboarding/softwareProduct/SoftwareProductConstants.js';
 import ActivityLogActionHelper from 'sdc-app/common/activity-log/ActivityLogActionHelper.js';
 import licenseModelOverviewActionHelper from 'sdc-app/onboarding/licenseModel/overview/licenseModelOverviewActionHelper.js';
 import store from 'sdc-app/AppStore.js';
@@ -164,18 +163,10 @@
 			const newVersion = response[0].version ? response[0].version : version;
 
 			SoftwareProductActionHelper.loadSoftwareProductDetailsData(dispatch, {licenseModelId, licensingVersion});
-			let isFetchImageDetails = (response[0].onboardingMethod === onboardingMethodTypes.HEAT);
-			if (isFetchImageDetails) {
-				// will only continue after we can properly build the navigation bar with the images links
-				SoftwareProductComponentsActionHelper.fetchSoftwareProductComponents(dispatch, {softwareProductId, version: newVersion, isFetchImageDetails}).then(() => {
-					SoftwareProductActionHelper.loadSoftwareProductHeatCandidate(dispatch, {softwareProductId, version: newVersion});
-					setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_LANDING_PAGE, {softwareProductId, licenseModelId, version: newVersion});
-				});
-			} else {
-				SoftwareProductComponentsActionHelper.fetchSoftwareProductComponents(dispatch, {softwareProductId, version: newVersion, isFetchImageDetails});
-				SoftwareProductActionHelper.loadSoftwareProductHeatCandidate(dispatch, {softwareProductId, version: newVersion});
-				setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_LANDING_PAGE, {softwareProductId, licenseModelId, version: newVersion});
-			}
+
+			SoftwareProductComponentsActionHelper.fetchSoftwareProductComponents(dispatch, {softwareProductId, version: newVersion});
+			SoftwareProductActionHelper.loadSoftwareProductHeatCandidate(dispatch, {softwareProductId, version: newVersion});
+			setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_LANDING_PAGE, {softwareProductId, licenseModelId, version: newVersion});
 		});
 	},
 
diff --git a/openecomp-ui/src/sdc-app/onboarding/OnboardingPunchOut.jsx b/openecomp-ui/src/sdc-app/onboarding/OnboardingPunchOut.jsx
index 1f0bef7..aea5fc6 100644
--- a/openecomp-ui/src/sdc-app/onboarding/OnboardingPunchOut.jsx
+++ b/openecomp-ui/src/sdc-app/onboarding/OnboardingPunchOut.jsx
@@ -415,9 +415,9 @@
 	handleStoreChange() {
 		let {currentScreen, licenseModelList, softwareProductList,
 			softwareProduct: {softwareProductEditor: {data = {onboardingMethod: ''}},
-				softwareProductComponents: {componentsList, images: {imagesNavigationList}}, softwareProductAttachments: {heatSetup}}} = store.getState();
+				softwareProductComponents: {componentsList}, softwareProductAttachments: {heatSetup}}} = store.getState();
 		let {onboardingMethod} = data;
-		let breadcrumbsData = {onboardingMethod, currentScreen, licenseModelList, softwareProductList, componentsList, heatSetup, imagesNavigationList};
+		let breadcrumbsData = {onboardingMethod, currentScreen, licenseModelList, softwareProductList, componentsList, heatSetup};
 		if (currentScreen.forceBreadCrumbsUpdate || !isEqual(breadcrumbsData, this.prevBreadcrumbsData) || this.breadcrumbsPrefixSelected) {
 			this.prevBreadcrumbsData = breadcrumbsData;
 			this.breadcrumbsPrefixSelected = false;
@@ -434,7 +434,7 @@
 		}
 	}
 
-	buildBreadcrumbs({currentScreen: {screen, props}, onboardingMethod, licenseModelList, softwareProductList, componentsList, heatSetup, imagesNavigationList}) {
+	buildBreadcrumbs({currentScreen: {screen, props}, onboardingMethod, licenseModelList, softwareProductList, componentsList, heatSetup}) {
 		let screenToBreadcrumb;
 		switch (screen) {
 			case enums.SCREEN.ONBOARDING_CATALOG:
@@ -646,15 +646,7 @@
 							}, {
 								key: enums.BREADCRUMS.SOFTWARE_PRODUCT_COMPONENT_MONITORING,
 								displayText: i18n('Monitoring')
-							}].filter(item => {
-								switch (item.key) {
-									case enums.BREADCRUMS.SOFTWARE_PRODUCT_COMPONENT_IMAGES:
-										return (onboardingMethod === onboardingMethodTypes.MANUAL ||
-										(imagesNavigationList && imagesNavigationList[props.componentId] === true));
-									default:
-										return true;
-								}
-							})
+							}]
 						}]
 					];
 				}
diff --git a/openecomp-ui/src/sdc-app/onboarding/licenseModel/LicenseModelConstants.js b/openecomp-ui/src/sdc-app/onboarding/licenseModel/LicenseModelConstants.js
index 4ba10c3..960090c 100644
--- a/openecomp-ui/src/sdc-app/onboarding/licenseModel/LicenseModelConstants.js
+++ b/openecomp-ui/src/sdc-app/onboarding/licenseModel/LicenseModelConstants.js
@@ -14,6 +14,7 @@
  * permissions and limitations under the License.
  */
 import keyMirror from 'nfvo-utils/KeyMirror.js';
+import i18n from 'nfvo-utils/i18n/i18n.js';
 
 export const actionTypes = keyMirror({
 	LICENSE_MODEL_LOADED: null,
@@ -31,3 +32,16 @@
 	LICENSE_KEY_GROUPS: 'license-key-groups',
 	ACTIVITY_LOG: 'activity-log'
 });
+
+export const thresholdUnitType = {
+	ABSOLUTE: 'Absolute',
+	PERCENTAGE: 'Percentage'
+};
+
+export const optionsInputValues = {
+	THRESHOLD_UNITS: [
+		{enum: '', title: i18n('please select…')},
+		{enum: thresholdUnitType.ABSOLUTE, title: 'Absolute'},
+		{enum: thresholdUnitType.PERCENTAGE, title: '%'}
+	]
+};
\ No newline at end of file
diff --git a/openecomp-ui/src/sdc-app/onboarding/licenseModel/LicenseModelReducer.js b/openecomp-ui/src/sdc-app/onboarding/licenseModel/LicenseModelReducer.js
index bd060a4..80beda2 100644
--- a/openecomp-ui/src/sdc-app/onboarding/licenseModel/LicenseModelReducer.js
+++ b/openecomp-ui/src/sdc-app/onboarding/licenseModel/LicenseModelReducer.js
@@ -35,6 +35,7 @@
 import {createPlainDataReducer} from 'sdc-app/common/reducers/PlainDataReducer.js';
 
 import {actionTypes as licenseModelOverviewConstants, selectedButton, VLM_DESCRIPTION_FORM} from './overview/LicenseModelOverviewConstants.js';
+import limitEditorReducer from './limits/LimitEditorReducer.js'; 
 
 export default combineReducers({
 	licenseModelCreation: createPlainDataReducer(licenseModelCreationReducer),
@@ -81,5 +82,6 @@
 			}
 		}
 	)}),
+	limitEditor: createPlainDataReducer(limitEditorReducer),
 	activityLog: activityLogReducer
 });
diff --git a/openecomp-ui/src/sdc-app/onboarding/licenseModel/LicenseModelValidations.js b/openecomp-ui/src/sdc-app/onboarding/licenseModel/LicenseModelValidations.js
new file mode 100644
index 0000000..64bae3b
--- /dev/null
+++ b/openecomp-ui/src/sdc-app/onboarding/licenseModel/LicenseModelValidations.js
@@ -0,0 +1,41 @@
+/*!
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+import i18n from 'nfvo-utils/i18n/i18n.js';
+import {thresholdUnitType} from './LicenseModelConstants.js';
+import Validator from 'nfvo-utils/Validator.js';
+
+export function validateStartDate(value, state) {
+	if (state.data.expiryDate) {
+		if (!value) {
+			return {isValid: false, errorText: i18n('Start date has to be specified if expiry date is specified')};
+		}
+	}
+	return {isValid: true, errorText: ''};
+}
+
+export function thresholdValueValidation(value, state) {
+	let  unit = state.data.thresholdUnits;
+	if (unit === thresholdUnitType.PERCENTAGE) {
+		return Validator.validate('thresholdValue', value, [
+			{type: 'numeric', data: true},
+			{type: 'maximum', data: 100},
+			{type: 'minimum', data: 0}]);
+	} else {
+		return Validator.validate('thresholdValue', value, [
+			{type: 'numeric', data: true},
+		]);
+	}
+}
diff --git a/openecomp-ui/src/sdc-app/onboarding/licenseModel/creation/LicenseModelCreation.js b/openecomp-ui/src/sdc-app/onboarding/licenseModel/creation/LicenseModelCreation.js
index d85618c..39b3c15 100644
--- a/openecomp-ui/src/sdc-app/onboarding/licenseModel/creation/LicenseModelCreation.js
+++ b/openecomp-ui/src/sdc-app/onboarding/licenseModel/creation/LicenseModelCreation.js
@@ -26,7 +26,7 @@
 
 	let VLMNames = {};
 	for (let i = 0; i < licenseModelList.length; i++) {
-		VLMNames[licenseModelList[i].vendorName] = licenseModelList[i].id;
+		VLMNames[licenseModelList[i].vendorName.toLowerCase()] = licenseModelList[i].id;
 	}
 
 	return {...licenseModelCreation, isFormValid: isFormValid, VLMNames};
diff --git a/openecomp-ui/src/sdc-app/onboarding/licenseModel/entitlementPools/EntitlementPoolsActionHelper.js b/openecomp-ui/src/sdc-app/onboarding/licenseModel/entitlementPools/EntitlementPoolsActionHelper.js
index a7c95f6..a371d56 100644
--- a/openecomp-ui/src/sdc-app/onboarding/licenseModel/entitlementPools/EntitlementPoolsActionHelper.js
+++ b/openecomp-ui/src/sdc-app/onboarding/licenseModel/entitlementPools/EntitlementPoolsActionHelper.js
@@ -17,6 +17,8 @@
 import Configuration from 'sdc-app/config/Configuration.js';
 import {actionTypes as entitlementPoolsActionTypes } from './EntitlementPoolsConstants.js';
 import LicenseModelActionHelper from 'sdc-app/onboarding/licenseModel/LicenseModelActionHelper.js';
+import {actionTypes as limitEditorActions} from 'sdc-app/onboarding/licenseModel/limits/LimitEditorConstants.js';
+import getValue from 'nfvo-utils/getValue.js';
 
 function baseUrl(licenseModelId, version) {
 	const restPrefix = Configuration.get('restPrefix');
@@ -28,18 +30,16 @@
 	return RestAPIUtil.fetch(`${baseUrl(licenseModelId, version)}`);
 }
 
-function postEntitlementPool(licenseModelId, entitlementPool, version) {
+function postEntitlementPool(licenseModelId, entitlementPool, version) {	
 	return RestAPIUtil.post(baseUrl(licenseModelId, version), {
 		name: entitlementPool.name,
 		description: entitlementPool.description,
 		thresholdValue: entitlementPool.thresholdValue,
-		thresholdUnits: entitlementPool.thresholdUnits,
+		thresholdUnits: getValue(entitlementPool.thresholdUnits),
 		entitlementMetric: entitlementPool.entitlementMetric,
 		increments: entitlementPool.increments,
-		aggregationFunction: entitlementPool.aggregationFunction,
-		operationalScope: entitlementPool.operationalScope,
+		operationalScope: getValue(entitlementPool.operationalScope),
 		time: entitlementPool.time,
-		manufacturerReferenceNumber: entitlementPool.manufacturerReferenceNumber,
 		startDate: entitlementPool.startDate,
 		expiryDate: entitlementPool.expiryDate
 	});
@@ -47,17 +47,16 @@
 
 
 function putEntitlementPool(licenseModelId, previousEntitlementPool, entitlementPool, version) {
+	
 	return RestAPIUtil.put(`${baseUrl(licenseModelId, version)}/${entitlementPool.id}`, {
 		name: entitlementPool.name,
 		description: entitlementPool.description,
 		thresholdValue: entitlementPool.thresholdValue,
-		thresholdUnits: entitlementPool.thresholdUnits,
+		thresholdUnits: getValue(entitlementPool.thresholdUnits),
 		entitlementMetric: entitlementPool.entitlementMetric,
 		increments: entitlementPool.increments,
-		aggregationFunction: entitlementPool.aggregationFunction,
-		operationalScope: entitlementPool.operationalScope,
+		operationalScope: getValue(entitlementPool.operationalScope),
 		time: entitlementPool.time,
-		manufacturerReferenceNumber: entitlementPool.manufacturerReferenceNumber,
 		startDate: entitlementPool.startDate,
 		expiryDate: entitlementPool.expiryDate
 	});
@@ -67,8 +66,43 @@
 	return RestAPIUtil.destroy(`${baseUrl(licenseModelId, version)}/${entitlementPoolId}`);
 }
 
+function fetchLimitsList(licenseModelId, entitlementPoolId, version) {	
+	return RestAPIUtil.fetch(`${baseUrl(licenseModelId, version)}/${entitlementPoolId}/limits`);
+}
+
+function deleteLimit(licenseModelId, entitlementPoolId, version, limitId) {	
+	return RestAPIUtil.destroy(`${baseUrl(licenseModelId, version)}/${entitlementPoolId}/limits/${limitId}`);
+}
+
+function postLimit(licenseModelId, entitlementPoolId, version, limit) {	
+	return RestAPIUtil.post(`${baseUrl(licenseModelId, version)}/${entitlementPoolId}/limits`, {
+		name: limit.name,
+		type: limit.type,
+		description: limit.description,
+		metric: limit.metric,
+		value: limit.value,
+		unit: limit.unit,
+		aggregationFunction: getValue(limit.aggregationFunction),
+		time: getValue(limit.time)
+	});
+}
+
+function putLimit(licenseModelId, entitlementPoolId, version, limit) {
+	
+	return RestAPIUtil.put(`${baseUrl(licenseModelId, version)}/${entitlementPoolId}/limits/${limit.id}`, {
+		name: limit.name,
+		type: limit.type,
+		description: limit.description,
+		metric: limit.metric,
+		value: limit.value,
+		unit: limit.unit,
+		aggregationFunction: getValue(limit.aggregationFunction),
+		time: getValue(limit.time)
+	});	
+}
 
 export default {
+
 	fetchEntitlementPoolsList(dispatch, {licenseModelId, version}) {
 		return fetchEntitlementPoolsList(licenseModelId, version).then(response => dispatch({
 			type: entitlementPoolsActionTypes.ENTITLEMENT_POOLS_LIST_LOADED,
@@ -76,7 +110,10 @@
 		}));
 	},
 
-	openEntitlementPoolsEditor(dispatch, {entitlementPool} = {}) {
+	openEntitlementPoolsEditor(dispatch, {entitlementPool, licenseModelId, version} = {}) {
+		if (licenseModelId && version) {
+			this.fetchLimits(dispatch, {licenseModelId, version, entitlementPool});
+		}
 		dispatch({
 			type: entitlementPoolsActionTypes.entitlementPoolsEditor.OPEN,
 			entitlementPool
@@ -145,5 +182,32 @@
 		LicenseModelActionHelper.fetchLicenseModelById(dispatch, {licenseModelId, version}).then(() => {
 			this.fetchEntitlementPoolsList(dispatch, {licenseModelId, version});
 		});
+	},
+
+
+	fetchLimits(dispatch, {licenseModelId, version, entitlementPool}) {
+		return fetchLimitsList(licenseModelId, entitlementPool.id, version). then (response => {
+			dispatch({
+				type: entitlementPoolsActionTypes.entitlementPoolsEditor.LIMITS_LIST_LOADED,
+				response
+			});
+		});		
+	},
+
+	submitLimit(dispatch, {licenseModelId, version, entitlementPool, limit}) {	
+		const propmise  =  limit.id ? putLimit(licenseModelId,entitlementPool.id, version, limit)
+			: postLimit(licenseModelId,entitlementPool.id, version, limit);
+		return propmise.then(() => {
+			dispatch({
+				type: limitEditorActions.CLOSE
+			});
+			this.fetchLimits(dispatch, {licenseModelId, version, entitlementPool});
+		});		
+	},
+
+	deleteLimit(dispatch, {licenseModelId, version, entitlementPool, limit}) {				
+		return  deleteLimit(licenseModelId,entitlementPool.id, version, limit.id).then(() => {
+			this.fetchLimits(dispatch, {licenseModelId, version, entitlementPool});		
+		});				
 	}
 };
diff --git a/openecomp-ui/src/sdc-app/onboarding/licenseModel/entitlementPools/EntitlementPoolsConstants.js b/openecomp-ui/src/sdc-app/onboarding/licenseModel/entitlementPools/EntitlementPoolsConstants.js
index 761614d..de2a87c 100644
--- a/openecomp-ui/src/sdc-app/onboarding/licenseModel/entitlementPools/EntitlementPoolsConstants.js
+++ b/openecomp-ui/src/sdc-app/onboarding/licenseModel/entitlementPools/EntitlementPoolsConstants.js
@@ -15,7 +15,7 @@
  */
 import keyMirror from 'nfvo-utils/KeyMirror.js';
 import i18n from 'nfvo-utils/i18n/i18n.js';
-import InputOptions, {other as optionInputOther} from 'nfvo-components/input/inputOptions/InputOptions.jsx';
+import InputOptions, {other as optionInputOther} from 'nfvo-components/input/validation/InputOptions.jsx';
 
 export const actionTypes = keyMirror({
 
@@ -28,6 +28,7 @@
 		OPEN: null,
 		CLOSE: null,
 		DATA_CHANGED: null,
+		LIMITS_LIST_LOADED: null
 	}
 
 });
@@ -94,11 +95,6 @@
 		{enum: 'Units_TB', title: 'Units-TB'},
 		{enum: 'Units_GB', title: 'Units-GB'},
 		{enum: 'Units_MB', title: 'Units-MB'}
-	],
-	THRESHOLD_UNITS: [
-		{enum: '', title: i18n('please select…')},
-		{enum: thresholdUnitType.ABSOLUTE, title: 'Absolute'},
-		{enum: thresholdUnitType.PERCENTAGE, title: '%'}
 	]
 };
 
@@ -112,6 +108,11 @@
 	return units === 'Absolute' ? '' : '%';
 };
 
-export const SP_ENTITLEMENT_POOL_FORM = 'SPENTITLEMENTPOOL';
+export const tabIds = {
+	GENERAL: 'GENERAL',
+	SP_LIMITS: 'SP_LIMITS',
+	VENDOR_LIMITS: 'VENDOR_LIMITS',
+	ADD_LIMIT_BUTTON: 'ADD_LIMIT_BUTTON'
+};
 
-export const EP_TIME_FORMAT = 'MM/DD/YYYY';
+export const SP_ENTITLEMENT_POOL_FORM = 'SPENTITLEMENTPOOL';
\ No newline at end of file
diff --git a/openecomp-ui/src/sdc-app/onboarding/licenseModel/entitlementPools/EntitlementPoolsEditor.js b/openecomp-ui/src/sdc-app/onboarding/licenseModel/entitlementPools/EntitlementPoolsEditor.js
index f89cf8f..23c260f 100644
--- a/openecomp-ui/src/sdc-app/onboarding/licenseModel/entitlementPools/EntitlementPoolsEditor.js
+++ b/openecomp-ui/src/sdc-app/onboarding/licenseModel/entitlementPools/EntitlementPoolsEditor.js
@@ -18,10 +18,12 @@
 import EntitlementPoolsEditorView from './EntitlementPoolsEditorView.jsx';
 import ValidationHelper from 'sdc-app/common/helpers/ValidationHelper.js';
 
+import LimitEditorActionHelper from '../limits/LimitEditorActionHelper.js';
+
 const mapStateToProps = ({licenseModel: {entitlementPool}}) => {
 
 
-	let {data, genericFieldInfo, formReady} = entitlementPool.entitlementPoolEditor;
+	let {data, genericFieldInfo, formReady, limitsList} = entitlementPool.entitlementPoolEditor;
 
 	let isFormValid = ValidationHelper.checkFormValid(genericFieldInfo);
 
@@ -33,7 +35,7 @@
 
 	const list = entitlementPool.entitlementPoolsList;
 	for (let i = 0; i < list.length; i++) {
-		EPNames[list[i].name] = list[i].id;
+		EPNames[list[i].name.toLowerCase()] = list[i].id;
 	}
 
 	return {
@@ -42,7 +44,8 @@
 		previousData,
 		isFormValid,
 		formReady,
-		EPNames
+		EPNames,
+		limitsList
 	};
 };
 
@@ -50,11 +53,13 @@
 	return {
 		onDataChanged: (deltaData, formName, customValidations) => ValidationHelper.dataChanged(dispatch, {deltaData, formName, customValidations}),
 		onCancel: () => EntitlementPoolsActionHelper.closeEntitlementPoolsEditor(dispatch),
-		onSubmit: ({previousEntitlementPool, entitlementPool}) => {
-			EntitlementPoolsActionHelper.closeEntitlementPoolsEditor(dispatch);
+		onSubmit: ({previousEntitlementPool, entitlementPool, keepOpen}) => {
+			if (!keepOpen) {EntitlementPoolsActionHelper.closeEntitlementPoolsEditor(dispatch);}
 			EntitlementPoolsActionHelper.saveEntitlementPool(dispatch, {licenseModelId, previousEntitlementPool, entitlementPool, version});
 		},
-		onValidateForm: (formName) => ValidationHelper.validateForm(dispatch, formName)
+		onValidateForm: (formName) => ValidationHelper.validateForm(dispatch, formName),
+		onCloseLimitEditor: () => LimitEditorActionHelper.closeLimitsEditor(dispatch),
+		onOpenLimitEditor: (limit) => LimitEditorActionHelper.openLimitsEditor(dispatch, {limit})
 	};
 };
 
diff --git a/openecomp-ui/src/sdc-app/onboarding/licenseModel/entitlementPools/EntitlementPoolsEditorReducer.js b/openecomp-ui/src/sdc-app/onboarding/licenseModel/entitlementPools/EntitlementPoolsEditorReducer.js
index bc95497..be100f6 100644
--- a/openecomp-ui/src/sdc-app/onboarding/licenseModel/entitlementPools/EntitlementPoolsEditorReducer.js
+++ b/openecomp-ui/src/sdc-app/onboarding/licenseModel/entitlementPools/EntitlementPoolsEditorReducer.js
@@ -41,12 +41,7 @@
 					'description' : {
 						isValid: true,
 						errorText: '',
-						validations: [{type: 'required', data: true}, {type: 'maxLength', data: 1000}]
-					},
-					'manufacturerReferenceNumber' : {
-						isValid: true,
-						errorText: '',
-						validations: [{type: 'required', data: true}, {type: 'maxLength', data: 100}]
+						validations: [{type: 'maxLength', data: 1000}]
 					},
 					'increments' : {
 						isValid: true,
@@ -56,33 +51,18 @@
 					'operationalScope' : {
 						isValid: true,
 						errorText: '',
-						validations: [{type: 'required', data: true}]
+						validations: []
 					},
 					'thresholdUnits' : {
 						isValid: true,
 						errorText: '',
-						validations: [{type: 'required', data: true}]
+						validations: []
 					},
 					'thresholdValue' : {
 						isValid: true,
 						errorText: '',
-						validations: [{type: 'required', data: true}]
-					},
-					'entitlementMetric' : {
-						isValid: true,
-						errorText: '',
-						validations: [{type: 'required', data: true}]
-					},
-					'aggregationFunction' : {
-						isValid: true,
-						errorText: '',
-						validations: [{type: 'required', data: true}]
-					},
-					'time' : {
-						isValid: true,
-						errorText: '',
-						validations: [{type: 'required', data: true}]
-					},
+						validations: []
+					},					
 					'startDate': {
 						isValid: true,
 						errorText: '',
@@ -106,6 +86,12 @@
 			};
 		case actionTypes.entitlementPoolsEditor.CLOSE:
 			return {};
+
+		case actionTypes.entitlementPoolsEditor.LIMITS_LIST_LOADED:
+			return {
+				...state,
+				limitsList: action.response.results
+			};	
 		default:
 			return state;
 	}
diff --git a/openecomp-ui/src/sdc-app/onboarding/licenseModel/entitlementPools/EntitlementPoolsEditorView.jsx b/openecomp-ui/src/sdc-app/onboarding/licenseModel/entitlementPools/EntitlementPoolsEditorView.jsx
index e4b52fc..aa1321c 100644
--- a/openecomp-ui/src/sdc-app/onboarding/licenseModel/entitlementPools/EntitlementPoolsEditorView.jsx
+++ b/openecomp-ui/src/sdc-app/onboarding/licenseModel/entitlementPools/EntitlementPoolsEditorView.jsx
@@ -21,41 +21,39 @@
 import Input from 'nfvo-components/input/validation/Input.jsx';
 import InputOptions from 'nfvo-components/input/validation/InputOptions.jsx';
 import Form from 'nfvo-components/input/validation/Form.jsx';
+import Button from 'sdc-ui/lib/react/Button.js';
 import GridSection from 'nfvo-components/grid/GridSection.jsx';
 import GridItem from 'nfvo-components/grid/GridItem.jsx';
-import {optionsInputValues as  EntitlementPoolsOptionsInputValues, thresholdUnitType, SP_ENTITLEMENT_POOL_FORM, EP_TIME_FORMAT}  from  './EntitlementPoolsConstants.js';
-import {other as optionInputOther} from 'nfvo-components/input/inputOptions/InputOptions.jsx';
+import {optionsInputValues as  EntitlementPoolsOptionsInputValues, SP_ENTITLEMENT_POOL_FORM, tabIds}  from  './EntitlementPoolsConstants.js';
+import {optionsInputValues as LicenseModelOptionsInputValues} from '../LicenseModelConstants.js';
+import {validateStartDate, thresholdValueValidation} from '../LicenseModelValidations.js';
+import {DATE_FORMAT} from 'sdc-app/onboarding/OnboardingConstants.js';
+import {other as optionInputOther} from 'nfvo-components/input/validation/InputOptions.jsx';
+import Tabs from 'sdc-ui/lib/react/Tabs.js';
+import Tab from 'sdc-ui/lib/react/Tab.js';
+import EntitlementPoolsLimits from './EntitlementPoolsLimits.js';
+import {limitType, NEW_LIMIT_TEMP_ID} from '../limits/LimitEditorConstants.js';
 
 const EntitlementPoolPropType = React.PropTypes.shape({
 	id: React.PropTypes.string,
 	name: React.PropTypes.string,
 	description: React.PropTypes.string,
-	manufacturerReferenceNumber: React.PropTypes.string,
 	operationalScope: React.PropTypes.shape({
 		choices: React.PropTypes.array,
 		other: React.PropTypes.string
 	}),
-	aggregationFunction: React.PropTypes.shape({
-		choice: React.PropTypes.string,
-		other: React.PropTypes.string
-	}),
+	thresholdUnits: React.PropTypes.string,
+	thresholdValue: React.PropTypes.number,
 	increments: React.PropTypes.string,
-	time: React.PropTypes.shape({
-		choice: React.PropTypes.string,
-		other: React.PropTypes.string
-	}),
-	entitlementMetric: React.PropTypes.shape({
-		choice: React.PropTypes.string,
-		other: React.PropTypes.string
-	})
+	startDate: React.PropTypes.string,
+	expiryDate: React.PropTypes.string
 });
 
-const EntitlementPoolsFormContent = ({data, genericFieldInfo, onDataChanged, validateName, validateChoiceWithOther, validateTimeOtherValue,
+const EntitlementPoolsFormContent = ({data, genericFieldInfo, onDataChanged, validateName,
 	 thresholdValueValidation, validateStartDate}) => {
-	let {
-		name, description, manufacturerReferenceNumber, operationalScope , aggregationFunction,  thresholdUnits, thresholdValue,
-		increments, time, entitlementMetric, startDate, expiryDate} = data;
 
+	let {name, description, operationalScope, thresholdUnits, thresholdValue,
+		increments, startDate, expiryDate} = data;
 	return (
 		<GridSection>
 			<GridItem colSpan={2}>
@@ -73,12 +71,10 @@
 				<InputOptions
 					onInputChange={()=>{}}
 					isMultiSelect={true}
-
-					isRequired={true}
 					onEnumChange={operationalScope => onDataChanged({operationalScope:{choices: operationalScope, other: ''}},
-						SP_ENTITLEMENT_POOL_FORM, {operationalScope: validateChoiceWithOther})}
+						SP_ENTITLEMENT_POOL_FORM)}
 					onOtherChange={operationalScope => onDataChanged({operationalScope:{choices: [optionInputOther.OTHER],
-						other: operationalScope}}, SP_ENTITLEMENT_POOL_FORM, {operationalScope: validateChoiceWithOther})}
+						other: operationalScope}}, SP_ENTITLEMENT_POOL_FORM)}
 					label={i18n('Operational Scope')}
 					data-test-id='create-ep-operational-scope'
 					type='select'
@@ -95,21 +91,21 @@
 					errorText={genericFieldInfo.description.errorText}
 					label={i18n('Description')}
 					value={description}
-					isRequired={true}
 					data-test-id='create-ep-description'
 					type='textarea'/>
 			</GridItem>
 			<GridItem colSpan={2}>
 				<div className='threshold-section'>
 					<Input
-						isRequired={true}
 						onChange={e => {
 							// setting the unit to the correct value
 							const selectedIndex = e.target.selectedIndex;
 							const val = e.target.options[selectedIndex].value;
 							onDataChanged({thresholdUnits: val}, SP_ENTITLEMENT_POOL_FORM);
 							// TODO make sure that the value is valid too
-							onDataChanged({thresholdValue: thresholdValue}, SP_ENTITLEMENT_POOL_FORM,{thresholdValue : thresholdValueValidation});}
+							if(thresholdValue && thresholdValue !== '') {
+								onDataChanged({thresholdValue: thresholdValue}, SP_ENTITLEMENT_POOL_FORM,{thresholdValue : thresholdValueValidation});
+							}}
 
 						}
 						value={thresholdUnits}
@@ -120,7 +116,7 @@
 						groupClassName='bootstrap-input-options'
 						className='input-options-select'
 						type='select' >
-						{EntitlementPoolsOptionsInputValues.THRESHOLD_UNITS.map(mtype =>
+						{LicenseModelOptionsInputValues.THRESHOLD_UNITS.map(mtype =>
 							<option key={mtype.enum} value={mtype.enum}>{`${mtype.title}`}</option>)}
 					</Input>
 
@@ -133,116 +129,46 @@
 						errorText={genericFieldInfo.thresholdValue.errorText}
 						data-test-id='create-ep-threshold-value'
 						value={thresholdValue}
-						isRequired={true}
 						type='text'/>
 				</div>
-				<InputOptions
-					onInputChange={()=>{}}
-					isMultiSelect={false}
-					isRequired={true}
-					onEnumChange={entitlementMetric => onDataChanged({entitlementMetric:{choice: entitlementMetric, other: ''}},
-						SP_ENTITLEMENT_POOL_FORM, {entitlementMetric: validateChoiceWithOther})}
-					onOtherChange={entitlementMetric => onDataChanged({entitlementMetric:{choice: optionInputOther.OTHER,
-						other: entitlementMetric}}, SP_ENTITLEMENT_POOL_FORM, {entitlementMetric: validateChoiceWithOther})}
-					label={i18n('Entitlement Metric')}
-					data-test-id='create-ep-entitlement-metric'
-					type='select'
-					required={true}
-					selectedEnum={entitlementMetric && entitlementMetric.choice}
-					otherValue={entitlementMetric && entitlementMetric.other}
-					values={EntitlementPoolsOptionsInputValues.ENTITLEMENT_METRIC}
-					isValid={genericFieldInfo.entitlementMetric.isValid}
-					errorText={genericFieldInfo.entitlementMetric.errorText} />
-				<InputOptions
-					onInputChange={()=>{}}
-					isMultiSelect={false}
-					isRequired={true}
-					onEnumChange={aggregationFunction => onDataChanged({aggregationFunction:{choice: aggregationFunction, other: ''}},
-						SP_ENTITLEMENT_POOL_FORM, {aggregationFunction: validateChoiceWithOther})}
-					onOtherChange={aggregationFunction => onDataChanged({aggregationFunction:{choice: optionInputOther.OTHER,
-						other: aggregationFunction}}, SP_ENTITLEMENT_POOL_FORM, {aggregationFunction: validateChoiceWithOther})}
-					label={i18n('Aggregate Function')}
-					data-test-id='create-ep-aggregate-function'
-					type='select'
-					required={true}
-					selectedEnum={aggregationFunction && aggregationFunction.choice}
-					otherValue={aggregationFunction && aggregationFunction.other}
-					values={EntitlementPoolsOptionsInputValues.AGGREGATE_FUNCTION}
-					isValid={genericFieldInfo.aggregationFunction.isValid}
-					errorText={genericFieldInfo.aggregationFunction.errorText} />
-			</GridItem>
-			<GridItem colSpan={2}>
-				<Input
-					onChange={manufacturerReferenceNumber => onDataChanged({manufacturerReferenceNumber}, SP_ENTITLEMENT_POOL_FORM)}
-					label={i18n('Manufacturer Reference Number')}
-					value={manufacturerReferenceNumber}
-					isValid={genericFieldInfo.manufacturerReferenceNumber.isValid}
-					errorText={genericFieldInfo.manufacturerReferenceNumber.errorText}
-					isRequired={true}
-					data-test-id='create-ep-reference-number'
-					type='text'/>
-			</GridItem>
-			<GridItem colSpan={2}>
-				<InputOptions
-					onInputChange={()=>{}}
-					isMultiSelect={false}
-					isRequired={true}
-					onEnumChange={time => onDataChanged({time:{choice: time, other: ''}},
-						SP_ENTITLEMENT_POOL_FORM, {time: validateChoiceWithOther})}
-					onOtherChange={time => onDataChanged({time:{choice: optionInputOther.OTHER,
-						other: time}}, SP_ENTITLEMENT_POOL_FORM, {time: validateTimeOtherValue})}
-					label={i18n('Time')}
-					data-test-id='create-ep-time'
-					type='select'
-					required={true}
-					selectedEnum={time && time.choice}
-					otherValue={time && time.other}
-					values={EntitlementPoolsOptionsInputValues.TIME}
-					isValid={genericFieldInfo.time.isValid}
-					errorText={genericFieldInfo.time.errorText} />
-			</GridItem>
-			<GridItem colSpan={2}>
 				<Input
 					onChange={increments => onDataChanged({increments}, SP_ENTITLEMENT_POOL_FORM)}
 					label={i18n('Increments')}
 					value={increments}
 					data-test-id='create-ep-increments'
 					type='text'/>
-			</GridItem>
-			<GridItem colSpan={2} />
-			<GridItem colSpan={2}>
-				<Input
-					type='date'
-					label={i18n('Start Date')} 
-					value={startDate}
-					dateFormat={EP_TIME_FORMAT}
-					startDate={startDate}
-					endDate={expiryDate}
-					onChange={startDate => onDataChanged(
-						{startDate: startDate ? startDate.format(EP_TIME_FORMAT) : ''}, 
-						SP_ENTITLEMENT_POOL_FORM,
-						{startDate: validateStartDate}
-					)}
-					isValid={genericFieldInfo.startDate.isValid}
-					errorText={genericFieldInfo.startDate.errorText}
-					selectsStart/>
-			</GridItem>
-			<GridItem colSpan={2}>
-				<Input
-					type='date' 
-					label={i18n('Expiry Date')} 
-					value={expiryDate}
-					dateFormat={EP_TIME_FORMAT}
-					startDate={startDate}
-					endDate={expiryDate}
-					onChange={expiryDate => {
-						onDataChanged({expiryDate: expiryDate ? expiryDate.format(EP_TIME_FORMAT) : ''}, SP_ENTITLEMENT_POOL_FORM);
-						onDataChanged({startDate}, SP_ENTITLEMENT_POOL_FORM, {startDate: validateStartDate});
-					}}
-					isValid={genericFieldInfo.expiryDate.isValid}
-					errorText={genericFieldInfo.expiryDate.errorText}
-					selectsEnd/>
-			</GridItem>
+				<div className='date-section'>
+					<Input
+						type='date'
+						label={i18n('Start Date')}
+						value={startDate}
+						dateFormat={DATE_FORMAT}
+						startDate={startDate}
+						endDate={expiryDate}
+						onChange={startDate => onDataChanged(
+							{startDate: startDate ? startDate.format(DATE_FORMAT) : ''},
+							SP_ENTITLEMENT_POOL_FORM,
+							{startDate: validateStartDate}
+						)}
+						isValid={genericFieldInfo.startDate.isValid}
+						errorText={genericFieldInfo.startDate.errorText}
+						selectsStart/>	
+					<Input
+						type='date'
+						label={i18n('Expiry Date')}
+						value={expiryDate}
+						dateFormat={DATE_FORMAT}
+						startDate={startDate}
+						endDate={expiryDate}
+						onChange={expiryDate => {
+							onDataChanged({expiryDate: expiryDate ? expiryDate.format(DATE_FORMAT) : ''}, SP_ENTITLEMENT_POOL_FORM);
+							onDataChanged({startDate}, SP_ENTITLEMENT_POOL_FORM, {startDate: validateStartDate});
+						}}
+						isValid={genericFieldInfo.expiryDate.isValid}
+						errorText={genericFieldInfo.expiryDate.errorText}
+						selectsEnd/>
+				</div>							
+			</GridItem>									
 		</GridSection>
 	);
 };
@@ -263,42 +189,102 @@
 		data: {}
 	};
 
-	render() {
-		let {data = {}, onDataChanged, isReadOnlyMode, genericFieldInfo} = this.props;
+	componentDidUpdate(prevProps) {				
+		if (this.props.formReady && this.props.formReady !== prevProps.formReady) { // if form validation succeeded -> continue with submit
+			this.submit();
+		}
+	}
+	
+	state = {		
+		selectedTab: tabIds.GENERAL,
+		selectedLimit: ''
+	};
 
+	render() {
+		let {data = {}, onDataChanged, isReadOnlyMode, genericFieldInfo, onCloseLimitEditor, limitsList = []} = this.props;
+		const {selectedTab} = this.state;
+		const isTabsDisabled = !data.id || !this.props.isFormValid;
 
 		return (
 			<div>
-				{
-					genericFieldInfo && <Form
-						ref='validationForm'
-						hasButtons={true}
-						onSubmit={ () => this.submit() }
-						onReset={ () => this.props.onCancel() }
-						labledButtons={true}
-						isReadOnlyMode={isReadOnlyMode}
-						isValid={this.props.isFormValid}
-						formReady={this.props.formReady}
-						onValidateForm={() => this.props.onValidateForm(SP_ENTITLEMENT_POOL_FORM) }
-						className='entitlement-pools-form'>
-						<EntitlementPoolsFormContent
-							data={data}
-							genericFieldInfo={genericFieldInfo}
-							onDataChanged={onDataChanged}
-							validateName={(value)=> this.validateName(value)}
-							validateTimeOtherValue ={(value)=> this.validateTimeOtherValue(value)}
-							validateChoiceWithOther={(value)=> this.validateChoiceWithOther(value)}
-							validateStartDate={(value, state)=> this.validateStartDate(value, state)}
-							thresholdValueValidation={(value, state)=> this.thresholdValueValidation(value, state)}/>
-					</Form>
+			<Tabs 
+				type='menu' 
+				activeTab={selectedTab} 
+				onTabClick={(tabIndex)=>{
+					if (tabIndex === tabIds.ADD_LIMIT_BUTTON)  {
+						this.onAddLimit();
+					} else {
+						this.setState({selectedTab: tabIndex});
+						this.setState({selectedLimit: ''});
+						onCloseLimitEditor();
+					}
+					
+				}} 
+				invalidTabs={[]}>
+				<Tab tabId={tabIds.GENERAL} data-test-id='general-tab' title={i18n('General')}>
+					{
+						genericFieldInfo && <Form
+							ref='validationForm'
+							hasButtons={false}						
+							labledButtons={false}
+							isReadOnlyMode={isReadOnlyMode}
+							isValid={this.props.isFormValid}
+							formReady={this.props.formReady}
+							onValidateForm={() => this.props.onValidateForm(SP_ENTITLEMENT_POOL_FORM) }
+							className='license-model-form entitlement-pools-form'>
+							<EntitlementPoolsFormContent
+								data={data}
+								genericFieldInfo={genericFieldInfo}
+								onDataChanged={onDataChanged}
+								validateName={(value) => this.validateName(value)}
+								validateStartDate={(value, state) => validateStartDate(value, state)}
+								thresholdValueValidation={(value, state) => thresholdValueValidation(value, state)}/>
+						</Form>
+					}
+				</Tab>
+				<Tab disabled={isTabsDisabled} tabId={tabIds.SP_LIMITS} data-test-id='sp-limits-tab' title={i18n('SP Limits')}>
+					{selectedTab === tabIds.SP_LIMITS && 
+						<EntitlementPoolsLimits 
+							limitType={limitType.SERVICE_PROVIDER} 
+							limitsList={limitsList.filter(item => item.type === limitType.SERVICE_PROVIDER)}
+							selectedLimit={this.state.selectedLimit}
+							onCloseLimitEditor={() => this.onCloseLimitEditor()}
+							onSelectLimit={limit => this.onSelectLimit(limit)}/>}
+				</Tab>
+				<Tab disabled={isTabsDisabled} tabId={tabIds.VENDOR_LIMITS} data-test-id='vendor-limits-tab' title={i18n('Vendor Limits')}>
+					{selectedTab === tabIds.VENDOR_LIMITS && 
+						<EntitlementPoolsLimits 
+							limitType={limitType.VENDOR} 
+							limitsList={limitsList.filter(item => item.type === limitType.VENDOR)}
+							selectedLimit={this.state.selectedLimit}
+							onCloseLimitEditor={() => this.onCloseLimitEditor()}
+							onSelectLimit={limit => this.onSelectLimit(limit)}/>}
+				</Tab>
+				{selectedTab !== tabIds.GENERAL ? 
+					<Button disabled={this.state.selectedLimit} className='add-limit-button' tabId={tabIds.ADD_LIMIT_BUTTON} btnType='link' iconName='plus'>{i18n('Add Limit')}</Button> : 
+					<div></div> // Render empty div to not break tabs
 				}
+			</Tabs>
+			<GridSection className='license-model-modal-buttons entitlement-pools-editor-buttons'>
+			{!this.state.selectedLimit && <Button btnType='default' disabled={!this.props.isFormValid} onClick={() => this.submit()} type='reset'>{i18n('Save')}</Button>}
+			<Button btnType={this.state.selectedLimit ? 'default' : 'outline'} onClick={() => this.props.onCancel()} type='reset'>
+				{i18n('Cancel')}
+			</Button>
+			</GridSection>	
 			</div>
 		);
 	}
 
 	submit() {
-		const {data: entitlementPool, previousData: previousEntitlementPool} = this.props;
-		this.props.onSubmit({entitlementPool, previousEntitlementPool});
+		const {data: entitlementPool, previousData: previousEntitlementPool, formReady} = this.props;
+
+		if (!formReady) {
+			this.props.onValidateForm(SP_ENTITLEMENT_POOL_FORM);
+		} else {
+			this.props.onSubmit({entitlementPool, previousEntitlementPool});
+		}
+
+		
 	}
 
 	validateName(value) {
@@ -309,52 +295,26 @@
 		{isValid: false, errorText: i18n('Entitlement pool by the name \'' + value + '\' already exists. Entitlement pool name must be unique')};
 	}
 
-	validateStartDate(value, state) {
-		if (state.data.expiryDate) {
-			if (!value) {
-				return {isValid: false, errorText: i18n('Start date has to be specified if expiry date is specified')};
-			}
+	onSelectLimit(limit) {
+		if (limit.id === this.state.selectedLimit) {
+			this.setState({selectedLimit: ''});
+			return;
 		}
-		return {isValid: true, errorText: ''};
+		this.setState({selectedLimit: limit.id});
+		this.props.onOpenLimitEditor(limit);
 	}
 
-	validateTimeOtherValue(value) {
-		return Validator.validate('time', value.other, [{type: 'required', data: true}, {type: 'numeric', data: true}]);
+	onCloseLimitEditor() {
+		this.setState({selectedLimit: ''});
+		this.props.onCloseLimitEditor();
 	}
 
-	validateChoiceWithOther(value) {
-		let chosen = value.choice;
-		// if we have an empty multiple select we have a problem since it's required
-		if (value.choices) {
-			if (value.choices.length === 0) {
-				return  Validator.validate('field', '', [{type: 'required', data: true}]);
-			} else {
-				// continuing validation with the first chosen value in case we have the 'Other' field
-				chosen = value.choices[0];
-			}
-		}
-		if (chosen !== optionInputOther.OTHER) {
-			return  Validator.validate('field', chosen, [{type: 'required', data: true}]);
-		} else { // when 'Other' was chosen, validate other value
-			return  Validator.validate('field', value.other, [{type: 'required', data: true}]);
-		}
+	onAddLimit() {
+		this.setState({selectedLimit: NEW_LIMIT_TEMP_ID});
+		this.props.onOpenLimitEditor();
 	}
 
-	thresholdValueValidation(value, state) {
 
-		let  unit = state.data.thresholdUnits;
-		if (unit === thresholdUnitType.PERCENTAGE) {
-			return Validator.validate('thresholdValue', value, [
-				{type: 'required', data: true},
-				{type: 'numeric', data: true},
-				{type: 'maximum', data: 100},
-				{type: 'minimum', data: 0}]);
-		} else {
-			return Validator.validate('thresholdValue', value, [
-				{type: 'numeric', data: true},
-				{type: 'required', data: true}]);
-		}
-	}
 
 }
 
diff --git a/openecomp-ui/src/sdc-app/onboarding/licenseModel/entitlementPools/EntitlementPoolsLimits.js b/openecomp-ui/src/sdc-app/onboarding/licenseModel/entitlementPools/EntitlementPoolsLimits.js
new file mode 100644
index 0000000..ae53a75
--- /dev/null
+++ b/openecomp-ui/src/sdc-app/onboarding/licenseModel/entitlementPools/EntitlementPoolsLimits.js
@@ -0,0 +1,56 @@
+/*!
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+import {connect} from 'react-redux';
+import i18n from 'nfvo-utils/i18n/i18n.js';
+import ValidationHelper from 'sdc-app/common/helpers/ValidationHelper.js';
+import Limits from 'sdc-app/onboarding/licenseModel/limits/Limits.jsx';
+import {actionTypes as globalModalActionTypes} from 'nfvo-components/modal/GlobalModalConstants.js';
+import EntitlementPoolsActionHelper from './EntitlementPoolsActionHelper.js';
+
+const mapStateToProps = ({licenseModel: {entitlementPool: {entitlementPoolEditor: {data}}, limitEditor}, currentScreen}) => {	
+	let  {props: {licenseModelId, version}} = currentScreen;
+	return {
+		parent: data,		
+		limitEditor,
+		licenseModelId,
+		version
+	};
+};
+
+const mapActionsToProps = (dispatch) => {
+	return {
+		onDataChanged: (deltaData, formName, customValidations) => ValidationHelper.dataChanged(dispatch, {deltaData, formName, customValidations}),
+		onSubmit: (limit, entitlementPool, licenseModelId, version) => EntitlementPoolsActionHelper.submitLimit(dispatch,
+			{
+				limit,
+				entitlementPool,
+				licenseModelId,
+				version}),
+		onDelete: ({limit, parent, licenseModelId, version, onCloseLimitEditor, selectedLimit}) => dispatch({
+			type: globalModalActionTypes.GLOBAL_MODAL_WARNING,
+			data:{
+				msg: i18n(`Are you sure you want to delete ${limit.name}?`),
+				confirmationButtonText: i18n('Delete'),
+				title: i18n('Warning'),
+				onConfirmed: ()=> EntitlementPoolsActionHelper.deleteLimit(dispatch, {limit, entitlementPool: parent, licenseModelId, version}).then(() => 
+					selectedLimit === limit.id && onCloseLimitEditor()
+				)
+			}
+		})
+	};
+};
+
+export default connect(mapStateToProps, mapActionsToProps)(Limits);
\ No newline at end of file
diff --git a/openecomp-ui/src/sdc-app/onboarding/licenseModel/entitlementPools/EntitlementPoolsListEditor.js b/openecomp-ui/src/sdc-app/onboarding/licenseModel/entitlementPools/EntitlementPoolsListEditor.js
index 993ed48..62c6663 100644
--- a/openecomp-ui/src/sdc-app/onboarding/licenseModel/entitlementPools/EntitlementPoolsListEditor.js
+++ b/openecomp-ui/src/sdc-app/onboarding/licenseModel/entitlementPools/EntitlementPoolsListEditor.js
@@ -39,7 +39,7 @@
 const mapActionsToProps = (dispatch, {licenseModelId, version}) => {
 	return {
 		onAddEntitlementPoolClick: () => EntitlementPoolsActionHelper.openEntitlementPoolsEditor(dispatch),
-		onEditEntitlementPoolClick: entitlementPool => EntitlementPoolsActionHelper.openEntitlementPoolsEditor(dispatch, {entitlementPool}),
+		onEditEntitlementPoolClick: entitlementPool => EntitlementPoolsActionHelper.openEntitlementPoolsEditor(dispatch, {entitlementPool, licenseModelId, version}),
 		onDeleteEntitlementPool: entitlementPool => dispatch({
 			type: globalMoadlActions.GLOBAL_MODAL_WARNING,
 			data:{
diff --git a/openecomp-ui/src/sdc-app/onboarding/licenseModel/entitlementPools/EntitlementPoolsListEditorView.jsx b/openecomp-ui/src/sdc-app/onboarding/licenseModel/entitlementPools/EntitlementPoolsListEditorView.jsx
index 55fd11b..c730d66 100644
--- a/openecomp-ui/src/sdc-app/onboarding/licenseModel/entitlementPools/EntitlementPoolsListEditorView.jsx
+++ b/openecomp-ui/src/sdc-app/onboarding/licenseModel/entitlementPools/EntitlementPoolsListEditorView.jsx
@@ -21,7 +21,7 @@
 import ListEditorItemView from 'nfvo-components/listEditor/ListEditorItemView.jsx';
 
 import EntitlementPoolsEditor from './EntitlementPoolsEditor.js';
-import {extractUnits, extractValue} from './EntitlementPoolsConstants';
+import {extractUnits} from './EntitlementPoolsConstants';
 
 class EntitlementPoolsListEditorView extends React.Component {
 	static propTypes = {
@@ -60,7 +60,7 @@
 					isReadOnlyMode={isReadOnlyMode}>
 					{this.filterList().map(entitlementPool => this.renderEntitlementPoolListItem(entitlementPool, isReadOnlyMode))}
 				</ListEditorView>
-				<Modal show={isDisplayModal} bsSize='large' animation={true} className='onborading-modal entitlement-pools-modal'>
+				<Modal show={isDisplayModal} bsSize='large' animation={true} className='onborading-modal license-model-modal entitlement-pools-modal'>
 					<Modal.Header>
 						<Modal.Title>{`${isModalInEditMode ? i18n('Edit Entitlement Pool') : i18n('Create New Entitlement Pool')}`}</Modal.Title>
 					</Modal.Header>
@@ -91,8 +91,7 @@
 	}
 
 	renderEntitlementPoolListItem(entitlementPool, isReadOnlyMode) {
-		let {id, name, description, thresholdValue, thresholdUnits, entitlementMetric, aggregationFunction,
-			manufacturerReferenceNumber, time} = entitlementPool;
+		let {id, name, description, thresholdValue, thresholdUnits} = entitlementPool;
 		let {onEditEntitlementPoolClick, onDeleteEntitlementPool} = this.props;
 		return (
 			<ListEditorItemView
@@ -109,13 +108,7 @@
 
 				<div className='list-editor-item-view-field'>
 					<div className='title'>{i18n('Entitlement')}</div>
-					<div className='entitlement-parameters'>{`${extractValue(aggregationFunction)} ${extractValue(entitlementMetric)} per  ${extractValue(time)}`}</div>
-					<div className='entitlement-pools-count'>{`${thresholdValue ? thresholdValue : ''} ${extractUnits(thresholdUnits)}`}</div>
-				</div>
-
-				<div className='list-editor-item-view-field'>
-					<div className='title'>{i18n('Manufacturer Reference Number')}</div>
-					<div className='text contract-number'>{manufacturerReferenceNumber}</div>
+					<div className='entitlement-pools-count'>{thresholdValue && `${thresholdValue} ${extractUnits(thresholdUnits)}`}</div>
 				</div>
 
 				<div className='list-editor-item-view-field'>
diff --git a/openecomp-ui/src/sdc-app/onboarding/licenseModel/featureGroups/FeatureGroupEditor.js b/openecomp-ui/src/sdc-app/onboarding/licenseModel/featureGroups/FeatureGroupEditor.js
index c6249c9..6edb1e1 100644
--- a/openecomp-ui/src/sdc-app/onboarding/licenseModel/featureGroups/FeatureGroupEditor.js
+++ b/openecomp-ui/src/sdc-app/onboarding/licenseModel/featureGroups/FeatureGroupEditor.js
@@ -34,7 +34,7 @@
 	}
 
 	for (let i = 0; i < list.length; i++) {
-		FGNames[list[i].name] = list[i].id;
+		FGNames[list[i].name.toLowerCase()] = list[i].id;
 	}
 
 	for (let field in genericFieldInfo) {
diff --git a/openecomp-ui/src/sdc-app/onboarding/licenseModel/featureGroups/FeatureGroupEditorView.jsx b/openecomp-ui/src/sdc-app/onboarding/licenseModel/featureGroups/FeatureGroupEditorView.jsx
index d695484..6a5ee46 100644
--- a/openecomp-ui/src/sdc-app/onboarding/licenseModel/featureGroups/FeatureGroupEditorView.jsx
+++ b/openecomp-ui/src/sdc-app/onboarding/licenseModel/featureGroups/FeatureGroupEditorView.jsx
@@ -15,7 +15,7 @@
  */
 import React from 'react';
 import Tabs from 'nfvo-components/input/validation/Tabs.jsx';
-import Tab from 'react-bootstrap/lib/Tab.js';
+import Tab from 'sdc-ui/lib/react/Tab.js';
 import GridSection from 'nfvo-components/grid/GridSection.jsx';
 import GridItem from 'nfvo-components/grid/GridItem.jsx';
 import {TabsForm as Form} from 'nfvo-components/input/validation/Form.jsx';
@@ -31,12 +31,13 @@
 	name: React.PropTypes.string,
 	description: React.PropTypes.string,
 	partNumber: React.PropTypes.string,
+	manufacturerReferenceNumber: React.PropTypes.string,
 	entitlementPoolsIds: React.PropTypes.arrayOf(React.PropTypes.string),
 	licenseKeyGroupsIds: React.PropTypes.arrayOf(React.PropTypes.string)
 });
 
 const GeneralTab = ({data = {}, onDataChanged, genericFieldInfo, validateName}) => {
-	let {name, description, partNumber} = data;
+	let {name, description, partNumber, manufacturerReferenceNumber} = data;
 	return (
 			<GridSection>
 				<GridItem colSpan={2}>
@@ -51,6 +52,8 @@
 						isRequired={true}
 						isValid={genericFieldInfo.name.isValid}
 						errorText={genericFieldInfo.name.errorText} />
+				</GridItem>
+				<GridItem colSpan={2}>
 					<Input
 						groupClassName='field-section'
 						className='description-field'
@@ -60,9 +63,10 @@
 						value={description}
 						name='feature-group-description'
 						type='textarea'
-						isRequired={true}
 						isValid={genericFieldInfo.description.isValid}
 						errorText={genericFieldInfo.description.errorText} />
+				</GridItem>
+				<GridItem colSpan={2}>
 					<Input
 						groupClassName='field-section'
 						onChange={partNumber => onDataChanged({partNumber}, FG_EDITOR_FORM)}
@@ -74,6 +78,18 @@
 						isValid={genericFieldInfo.partNumber.isValid}
 						errorText={genericFieldInfo.partNumber.errorText} />
 				</GridItem>
+				<GridItem colSpan={2}>
+					<Input
+						groupClassName='field-section'
+						onChange={manufacturerReferenceNumber => onDataChanged({manufacturerReferenceNumber}, FG_EDITOR_FORM)}
+						label={i18n('Manufacturer Reference Number')}
+						data-test-id='create-fg-reference-number'
+						value={manufacturerReferenceNumber}
+						isRequired={true}
+						type='text'
+						isValid={genericFieldInfo.manufacturerReferenceNumber.isValid}
+						errorText={genericFieldInfo.manufacturerReferenceNumber.errorText} />
+				</GridItem>
 			</GridSection>
 		);
 };
@@ -94,7 +110,7 @@
 		);
 	} else {
 		return (
-			<p>{i18n('There is no available entitlement pools')}</p>
+			<p>{i18n('There are no available entitlement pools')}</p>
 		);
 	}
 };
@@ -115,7 +131,7 @@
 		);
 	} else {
 		return (
-			<p>{i18n('There is no available licsense key groups')}</p>
+			<p>{i18n('There are no available license key groups')}</p>
 		);
 	}
 };
@@ -166,22 +182,22 @@
 				labledButtons={true}
 				isReadOnlyMode={isReadOnlyMode}
 				name='feature-group-validation-form'
-				className='feature-group-form'>
-				<Tabs activeKey={onTabSelect ? selectedTab : undefined} onSelect={onTabSelect} invalidTabs={invalidTabs} id='vlmFGValTabs' >
-					<Tab eventKey={FeatureGroupStateConstants.SELECTED_FEATURE_GROUP_TAB.GENERAL} title={i18n('General')}  >
+				className='license-model-form feature-group-form'>
+				<Tabs activeTab={onTabSelect ? selectedTab : undefined} onTabClick={onTabSelect} invalidTabs={invalidTabs} id='vlmFGValTabs' >
+					<Tab tabId={FeatureGroupStateConstants.SELECTED_FEATURE_GROUP_TAB.GENERAL} title={i18n('General')}  >
 						<fieldset disabled={isReadOnlyMode}>
 							<GeneralTab data={data} onDataChanged={onDataChanged} genericFieldInfo={genericFieldInfo}  validateName={(value)=> this.validateName(value)}/>
 						</fieldset>
 					</Tab>
 					<Tab
-						eventKey={FeatureGroupStateConstants.SELECTED_FEATURE_GROUP_TAB.ENTITLEMENT_POOLS}
+						tabId={FeatureGroupStateConstants.SELECTED_FEATURE_GROUP_TAB.ENTITLEMENT_POOLS}
 						title={i18n('Entitlement Pools')} >
 						<fieldset disabled={isReadOnlyMode}>
 							<EntitlementPoolsTab isReadOnlyMode={isReadOnlyMode} data={data} onDataChanged={onDataChanged} entitlementPoolsList={entitlementPoolsList} />
 						</fieldset>
 					</Tab>
 					<Tab
-						eventKey={FeatureGroupStateConstants.SELECTED_FEATURE_GROUP_TAB.LICENSE_KEY_GROUPS}
+						tabId={FeatureGroupStateConstants.SELECTED_FEATURE_GROUP_TAB.LICENSE_KEY_GROUPS}
 						title={i18n('License Key Groups')} >
 						<fieldset disabled={isReadOnlyMode}>
 							<LKGTab isReadOnlyMode={isReadOnlyMode} data={data} onDataChanged={onDataChanged} licenseKeyGroupsList={licenseKeyGroupsList} />
diff --git a/openecomp-ui/src/sdc-app/onboarding/licenseModel/featureGroups/FeatureGroupListEditorView.jsx b/openecomp-ui/src/sdc-app/onboarding/licenseModel/featureGroups/FeatureGroupListEditorView.jsx
index f883bd7..9844290 100644
--- a/openecomp-ui/src/sdc-app/onboarding/licenseModel/featureGroups/FeatureGroupListEditorView.jsx
+++ b/openecomp-ui/src/sdc-app/onboarding/licenseModel/featureGroups/FeatureGroupListEditorView.jsx
@@ -65,7 +65,7 @@
 					{this.filterList().map(listItem => this.renderFeatureGroupListItem(listItem, isReadOnlyMode, version))}
 				</ListEditorView>
 				{featureGroupsModal.show && <Modal show={featureGroupsModal.show} bsSize='large' animation={true}
-					       className='onborading-modal feature-group-modal'>
+					       className='onborading-modal license-model-modal feature-group-modal'>
 						<Modal.Header>
 							<Modal.Title>{`${featureGroupsModal.editMode ? i18n('Edit Feature Group') : i18n('Create New Feature Group')}`}</Modal.Title>
 						</Modal.Header>
@@ -84,7 +84,7 @@
 
 
 	renderFeatureGroupListItem(listItem, isReadOnlyMode, version) {
-		let {name, description, entitlementPoolsIds = [], licenseKeyGroupsIds = []} = listItem;
+		let {name, description, manufacturerReferenceNumber, entitlementPoolsIds = [], licenseKeyGroupsIds = []} = listItem;
 		return (
 			<ListEditorItemView
 				key={listItem.id}
@@ -111,9 +111,19 @@
 				</div>
 
 				<div className='list-editor-item-view-field'>
+					<div className='feature-groups-count-field'>
+						<div className='title'>{i18n('Manufacturer Reference')}</div>
+						<div className='title'>{i18n('Number')}</div>
+						<div className='feature-groups-count-ep'>{manufacturerReferenceNumber}</div>
+					</div>
+				</div>
+
+				<div className='list-editor-item-view-field'>
 					<div className='title'>{i18n('Description')}</div>
 					<div className='text description'>{description}</div>
 				</div>
+				
+				
 
 			</ListEditorItemView>
 		);
diff --git a/openecomp-ui/src/sdc-app/onboarding/licenseModel/featureGroups/FeatureGroupsActionHelper.js b/openecomp-ui/src/sdc-app/onboarding/licenseModel/featureGroups/FeatureGroupsActionHelper.js
index a201578..b8c0375 100644
--- a/openecomp-ui/src/sdc-app/onboarding/licenseModel/featureGroups/FeatureGroupsActionHelper.js
+++ b/openecomp-ui/src/sdc-app/onboarding/licenseModel/featureGroups/FeatureGroupsActionHelper.js
@@ -39,6 +39,7 @@
 		name: featureGroup.name,
 		description: featureGroup.description,
 		partNumber: featureGroup.partNumber,
+		manufacturerReferenceNumber: featureGroup.manufacturerReferenceNumber,
 		addedLicenseKeyGroupsIds: featureGroup.licenseKeyGroupsIds,
 		addedEntitlementPoolsIds: featureGroup.entitlementPoolsIds
 	});
@@ -54,6 +55,7 @@
 		name: featureGroup.name,
 		description: featureGroup.description,
 		partNumber: featureGroup.partNumber,
+		manufacturerReferenceNumber: featureGroup.manufacturerReferenceNumber,
 		addedLicenseKeyGroupsIds: licenseKeyGroupsIds.filter(licenseKeyGroupId => prevLicenseKeyGroupsIds.indexOf(licenseKeyGroupId) === -1),
 		removedLicenseKeyGroupsIds: prevLicenseKeyGroupsIds.filter(prevLicenseKeyGroupId => licenseKeyGroupsIds.indexOf(prevLicenseKeyGroupId) === -1),
 		addedEntitlementPoolsIds: entitlementPoolsIds.filter(entitlementPoolId => prevEntitlementPoolsIds.indexOf(entitlementPoolId) === -1),
diff --git a/openecomp-ui/src/sdc-app/onboarding/licenseModel/featureGroups/FeatureGroupsEditorReducer.js b/openecomp-ui/src/sdc-app/onboarding/licenseModel/featureGroups/FeatureGroupsEditorReducer.js
index 001bd20..5688fc0 100644
--- a/openecomp-ui/src/sdc-app/onboarding/licenseModel/featureGroups/FeatureGroupsEditorReducer.js
+++ b/openecomp-ui/src/sdc-app/onboarding/licenseModel/featureGroups/FeatureGroupsEditorReducer.js
@@ -30,7 +30,7 @@
 					'description': {
 						isValid: true,
 						errorText: '',
-						validations: [{type: 'required', data: true}, {type: 'maxLength', data: 1000}],
+						validations: [{type: 'maxLength', data: 1000}],
 						tabId: FeatureGroupStateConstants.SELECTED_FEATURE_GROUP_TAB.GENERAL
 					},
 					'partNumber': {
@@ -39,6 +39,12 @@
 						validations: [{type: 'required', data: true}],
 						tabId: FeatureGroupStateConstants.SELECTED_FEATURE_GROUP_TAB.GENERAL
 					},
+					'manufacturerReferenceNumber': {
+						isValid: true,
+						errorText: '',
+						validations: [{type: 'required', data: true}, {type: 'maxLength', data: 100}],
+						tabId: FeatureGroupStateConstants.SELECTED_FEATURE_GROUP_TAB.GENERAL
+					},
 					'name': {
 						isValid: true,
 						errorText: '',
diff --git a/openecomp-ui/src/sdc-app/onboarding/licenseModel/licenseAgreement/LicenseAgreementConstants.js b/openecomp-ui/src/sdc-app/onboarding/licenseModel/licenseAgreement/LicenseAgreementConstants.js
index 998d5f0..40bef2c 100644
--- a/openecomp-ui/src/sdc-app/onboarding/licenseModel/licenseAgreement/LicenseAgreementConstants.js
+++ b/openecomp-ui/src/sdc-app/onboarding/licenseModel/licenseAgreement/LicenseAgreementConstants.js
@@ -15,7 +15,7 @@
  */
 import keyMirror from 'nfvo-utils/KeyMirror.js';
 import i18n from 'nfvo-utils/i18n/i18n.js';
-import InputOptions, {other as optionInputOther} from 'nfvo-components/input/inputOptions/InputOptions.jsx';
+import InputOptions, {other as optionInputOther} from 'nfvo-components/input/validation/InputOptions.jsx';
 
 export const actionTypes = keyMirror({
 	LICENSE_AGREEMENT_LIST_LOADED: null,
diff --git a/openecomp-ui/src/sdc-app/onboarding/licenseModel/licenseAgreement/LicenseAgreementEditor.js b/openecomp-ui/src/sdc-app/onboarding/licenseModel/licenseAgreement/LicenseAgreementEditor.js
index aada8dd..7d70da6 100644
--- a/openecomp-ui/src/sdc-app/onboarding/licenseModel/licenseAgreement/LicenseAgreementEditor.js
+++ b/openecomp-ui/src/sdc-app/onboarding/licenseModel/licenseAgreement/LicenseAgreementEditor.js
@@ -32,7 +32,7 @@
 	}
 
 	for (let i = 0; i < list.length; i++) {
-		LANames[list[i].name] = list[i].id;
+		LANames[list[i].name.toLowerCase()] = list[i].id;
 	}
 
 	const {featureGroupsList = []} = featureGroup;
diff --git a/openecomp-ui/src/sdc-app/onboarding/licenseModel/licenseAgreement/LicenseAgreementEditorReducer.js b/openecomp-ui/src/sdc-app/onboarding/licenseModel/licenseAgreement/LicenseAgreementEditorReducer.js
index e02935c..5be1405 100644
--- a/openecomp-ui/src/sdc-app/onboarding/licenseModel/licenseAgreement/LicenseAgreementEditorReducer.js
+++ b/openecomp-ui/src/sdc-app/onboarding/licenseModel/licenseAgreement/LicenseAgreementEditorReducer.js
@@ -26,7 +26,7 @@
 					'description' : {
 						isValid: true,
 						errorText: '',
-						validations: [{type: 'required', data: true}, {type: 'maxLength', data: 1000}],
+						validations: [{type: 'maxLength', data: 1000}],
 						tabId: LicenseAgreementEnums.SELECTED_LICENSE_AGREEMENT_TAB.GENERAL
 					},
 					'requirementsAndConstrains' : {
@@ -38,7 +38,7 @@
 					'licenseTerm' : {
 						isValid: true,
 						errorText: '',
-						validations: [],
+						validations: [{type: 'required', data: true}],
 						tabId: LicenseAgreementEnums.SELECTED_LICENSE_AGREEMENT_TAB.GENERAL
 					},
 					'name' : {
diff --git a/openecomp-ui/src/sdc-app/onboarding/licenseModel/licenseAgreement/LicenseAgreementEditorView.jsx b/openecomp-ui/src/sdc-app/onboarding/licenseModel/licenseAgreement/LicenseAgreementEditorView.jsx
index 42a33fd..a15e5da 100644
--- a/openecomp-ui/src/sdc-app/onboarding/licenseModel/licenseAgreement/LicenseAgreementEditorView.jsx
+++ b/openecomp-ui/src/sdc-app/onboarding/licenseModel/licenseAgreement/LicenseAgreementEditorView.jsx
@@ -19,7 +19,7 @@
 import GridItem from 'nfvo-components/grid/GridItem.jsx';
 import {TabsForm as Form} from 'nfvo-components/input/validation/Form.jsx';
 import Tabs from 'nfvo-components/input/validation/Tabs.jsx';
-import Tab from 'react-bootstrap/lib/Tab.js';
+import Tab from 'sdc-ui/lib/react/Tab.js';
 import Input from 'nfvo-components/input/validation/Input.jsx';
 import DualListboxView from 'nfvo-components/input/dualListbox/DualListboxView.jsx';
 import i18n from 'nfvo-utils/i18n/i18n.js';
@@ -96,7 +96,6 @@
 					overlayPos='bottom'
 					data-test-id='create-la-description'
 					name='license-agreement-description'
-					isRequired={true}
 					type='textarea'/>
 			</GridItem>
 		</GridSection>
@@ -145,10 +144,10 @@
 					isValid={this.props.isFormValid}
 					formReady={this.props.formReady}
 					onValidateForm={() => this.props.onValidateForm(LA_EDITOR_FORM) }
-					className='license-agreement-form'>
-					<Tabs activeKey={onTabSelect ? selectedTab : undefined} onSelect={onTabSelect} invalidTabs={this.props.invalidTabs} >
+					className='license-model-form license-agreement-form'>
+					<Tabs activeTab={onTabSelect ? selectedTab : undefined} onTabClick={onTabSelect} invalidTabs={this.props.invalidTabs} >
 						<Tab
-							eventKey={LicenseAgreementEnums.SELECTED_LICENSE_AGREEMENT_TAB.GENERAL}
+							tabId={LicenseAgreementEnums.SELECTED_LICENSE_AGREEMENT_TAB.GENERAL}
 							data-test-id='general-tab'
 							title={i18n('General')}>
 								<fieldset disabled={isReadOnlyMode}>
@@ -157,7 +156,7 @@
 								</fieldset>
 						</Tab>
 						<Tab
-							eventKey={LicenseAgreementEnums.SELECTED_LICENSE_AGREEMENT_TAB.FEATURE_GROUPS}
+							tabId={LicenseAgreementEnums.SELECTED_LICENSE_AGREEMENT_TAB.FEATURE_GROUPS}
 							data-test-id='feature-group-tab'
 							title={i18n('Feature Groups')}>
 								<fieldset disabled={isReadOnlyMode}>
@@ -168,7 +167,7 @@
 										selectedValuesList={data.featureGroupsIds}
 										availableList={featureGroupsList}
 										onChange={ selectedValuesList => onDataChanged( { featureGroupsIds: selectedValuesList }, LA_EDITOR_FORM )}/> :
-									<p>{i18n('There is no available feature groups')}</p>}
+									<p>{i18n('There are no available feature groups')}</p>}
 								</fieldset>
 						</Tab>
 					</Tabs>
diff --git a/openecomp-ui/src/sdc-app/onboarding/licenseModel/licenseAgreement/LicenseAgreementListEditorView.jsx b/openecomp-ui/src/sdc-app/onboarding/licenseModel/licenseAgreement/LicenseAgreementListEditorView.jsx
index 192d2de..6247723 100644
--- a/openecomp-ui/src/sdc-app/onboarding/licenseModel/licenseAgreement/LicenseAgreementListEditorView.jsx
+++ b/openecomp-ui/src/sdc-app/onboarding/licenseModel/licenseAgreement/LicenseAgreementListEditorView.jsx
@@ -59,7 +59,7 @@
 					isReadOnlyMode={isReadOnlyMode}>
 					{this.filterList().map(licenseAgreement => this.renderLicenseAgreementListItem(licenseAgreement, isReadOnlyMode, version))}
 				</ListEditorView>
-				<Modal show={isDisplayModal} bsSize='large' animation={true} className='onborading-modal license-agreement-modal'>
+				<Modal show={isDisplayModal} bsSize='large' animation={true} className='onborading-modal license-model-modal license-agreement-modal'>
 					<Modal.Header>
 						<Modal.Title>{`${isModalInEditMode ? i18n('Edit License Agreement') : i18n('Create New License Agreement')}`}</Modal.Title>
 					</Modal.Header>
diff --git a/openecomp-ui/src/sdc-app/onboarding/licenseModel/licenseKeyGroups/LicenseKeyGroupsActionHelper.js b/openecomp-ui/src/sdc-app/onboarding/licenseModel/licenseKeyGroups/LicenseKeyGroupsActionHelper.js
index dd2a5c6..f5017f6 100644
--- a/openecomp-ui/src/sdc-app/onboarding/licenseModel/licenseKeyGroups/LicenseKeyGroupsActionHelper.js
+++ b/openecomp-ui/src/sdc-app/onboarding/licenseModel/licenseKeyGroups/LicenseKeyGroupsActionHelper.js
@@ -17,6 +17,8 @@
 import Configuration from 'sdc-app/config/Configuration.js';
 import {actionTypes as licenseKeyGroupsConstants} from './LicenseKeyGroupsConstants.js';
 import LicenseModelActionHelper from 'sdc-app/onboarding/licenseModel/LicenseModelActionHelper.js';
+import {actionTypes as limitEditorActions} from 'sdc-app/onboarding/licenseModel/limits/LimitEditorConstants.js';
+import getValue from 'nfvo-utils/getValue.js';
 
 function baseUrl(licenseModelId, version) {
 	const restPrefix = Configuration.get('restPrefix');
@@ -36,8 +38,13 @@
 	return RestAPIUtil.post(baseUrl(licenseModelId, version), {
 		name: licenseKeyGroup.name,
 		description: licenseKeyGroup.description,
-		operationalScope: licenseKeyGroup.operationalScope,
-		type: licenseKeyGroup.type
+		operationalScope: getValue(licenseKeyGroup.operationalScope),
+		type: licenseKeyGroup.type,
+		increments: licenseKeyGroup.increments,
+		thresholdValue: licenseKeyGroup.thresholdValue,
+		thresholdUnits: getValue(licenseKeyGroup.thresholdUnits),
+		startDate: licenseKeyGroup.startDate,
+		expiryDate: licenseKeyGroup.expiryDate
 	});
 }
 
@@ -45,11 +52,50 @@
 	return RestAPIUtil.put(`${baseUrl(licenseModelId, version)}/${licenseKeyGroup.id}`, {
 		name: licenseKeyGroup.name,
 		description: licenseKeyGroup.description,
-		operationalScope: licenseKeyGroup.operationalScope,
-		type: licenseKeyGroup.type
+		operationalScope: getValue(licenseKeyGroup.operationalScope),
+		type: licenseKeyGroup.type,
+		increments: licenseKeyGroup.increments,
+		thresholdValue: licenseKeyGroup.thresholdValue,
+		thresholdUnits: getValue(licenseKeyGroup.thresholdUnits),
+		startDate: licenseKeyGroup.startDate,
+		expiryDate: licenseKeyGroup.expiryDate
 	});
 }
 
+function fetchLimitsList(licenseModelId, licenseKeyGroupId, version) {
+	return RestAPIUtil.fetch(`${baseUrl(licenseModelId, version)}/${licenseKeyGroupId}/limits`);
+}
+
+function deleteLimit(licenseModelId, licenseKeyGroupId, version, limitId) {
+	return RestAPIUtil.destroy(`${baseUrl(licenseModelId, version)}/${licenseKeyGroupId}/limits/${limitId}`);
+}
+
+function postLimit(licenseModelId, licenseKeyGroupId, version, limit) {
+	return RestAPIUtil.post(`${baseUrl(licenseModelId, version)}/${licenseKeyGroupId}/limits`, {
+		name: limit.name,
+		type: limit.type,
+		description: limit.description,
+		metric: limit.metric,
+		value: limit.value,
+		unit: limit.unit,
+		aggregationFunction: getValue(limit.aggregationFunction),
+		time: getValue(limit.time)
+	});
+}
+
+function putLimit(licenseModelId, licenseKeyGroupId, version, limit) {
+
+	return RestAPIUtil.put(`${baseUrl(licenseModelId, version)}/${licenseKeyGroupId}/limits/${limit.id}`, {
+		name: limit.name,
+		type: limit.type,
+		description: limit.description,
+		metric: limit.metric,
+		value: limit.value,
+		unit: limit.unit,
+		aggregationFunction: getValue(limit.aggregationFunction),
+		time: getValue(limit.time)
+	});
+}
 
 export default {
 	fetchLicenseKeyGroupsList(dispatch, {licenseModelId, version}) {
@@ -59,7 +105,10 @@
 		}));
 	},
 
-	openLicenseKeyGroupsEditor(dispatch, {licenseKeyGroup} = {}) {
+	openLicenseKeyGroupsEditor(dispatch, {licenseKeyGroup, licenseModelId, version} = {}) {
+		if (licenseModelId && version) {
+			this.fetchLimits(dispatch, {licenseModelId, version, licenseKeyGroup});
+		}
 		dispatch({
 			type: licenseKeyGroupsConstants.licenseKeyGroupsEditor.OPEN,
 			licenseKeyGroup
@@ -124,5 +173,34 @@
 		LicenseModelActionHelper.fetchLicenseModelById(dispatch, {licenseModelId, version}).then(() => {
 			this.fetchLicenseKeyGroupsList(dispatch, {licenseModelId, version});
 		});
+	},
+
+
+	fetchLimits(dispatch, {licenseModelId, version, licenseKeyGroup}) {
+		return fetchLimitsList(licenseModelId, licenseKeyGroup.id, version).then(response => {
+			dispatch({
+				type: licenseKeyGroupsConstants.licenseKeyGroupsEditor.LIMITS_LIST_LOADED,
+				response
+			});	
+		});									
+	},
+
+	submitLimit(dispatch, {licenseModelId, version, licenseKeyGroup, limit}) {
+		const promise = limit.id ? putLimit(licenseModelId,licenseKeyGroup.id, version, limit) :
+			 postLimit(licenseModelId,licenseKeyGroup.id, version, limit);
+		return promise.then(() => {
+			dispatch({
+				type: limitEditorActions.CLOSE
+			});
+			this.fetchLimits(dispatch, {licenseModelId, version, licenseKeyGroup});
+		});	  			
+	},
+
+	deleteLimit(dispatch, {licenseModelId, version, licenseKeyGroup, limit}) {
+		return deleteLimit(licenseModelId,licenseKeyGroup.id, version, limit.id).then(() => {
+			this.fetchLimits(dispatch, {licenseModelId, version, licenseKeyGroup});
+		});		
 	}
+
+
 };
diff --git a/openecomp-ui/src/sdc-app/onboarding/licenseModel/licenseKeyGroups/LicenseKeyGroupsConstants.js b/openecomp-ui/src/sdc-app/onboarding/licenseModel/licenseKeyGroups/LicenseKeyGroupsConstants.js
index 50d1fe8..c376cb3 100644
--- a/openecomp-ui/src/sdc-app/onboarding/licenseModel/licenseKeyGroups/LicenseKeyGroupsConstants.js
+++ b/openecomp-ui/src/sdc-app/onboarding/licenseModel/licenseKeyGroups/LicenseKeyGroupsConstants.js
@@ -15,7 +15,7 @@
  */
 import keyMirror from 'nfvo-utils/KeyMirror.js';
 import i18n from 'nfvo-utils/i18n/i18n.js';
-import InputOptions, {other as optionInputOther} from 'nfvo-components/input/inputOptions/InputOptions.jsx';
+import InputOptions, {other as optionInputOther} from 'nfvo-components/input/validation/InputOptions.jsx';
 
 export const actionTypes = keyMirror({
 
@@ -28,6 +28,7 @@
 		OPEN: null,
 		CLOSE: null,
 		DATA_CHANGED: null,
+		LIMITS_LIST_LOADED: null
 	}
 });
 
@@ -77,3 +78,10 @@
 		return allOpScopes;
 	}
 };
+
+export const tabIds = {
+	GENERAL: 'GENERAL',
+	SP_LIMITS: 'SP_LIMITS',
+	VENDOR_LIMITS: 'VENDOR_LIMITS',
+	ADD_LIMIT_BUTTON: 'ADD_LIMIT_BUTTON'
+};
diff --git a/openecomp-ui/src/sdc-app/onboarding/licenseModel/licenseKeyGroups/LicenseKeyGroupsEditor.js b/openecomp-ui/src/sdc-app/onboarding/licenseModel/licenseKeyGroups/LicenseKeyGroupsEditor.js
index aef1532..028fa9d 100644
--- a/openecomp-ui/src/sdc-app/onboarding/licenseModel/licenseKeyGroups/LicenseKeyGroupsEditor.js
+++ b/openecomp-ui/src/sdc-app/onboarding/licenseModel/licenseKeyGroups/LicenseKeyGroupsEditor.js
@@ -16,12 +16,13 @@
 import {connect} from 'react-redux';
 import LicenseKeyGroupsActionHelper from './LicenseKeyGroupsActionHelper.js';
 import LicenseKeyGroupsEditorView from './LicenseKeyGroupsEditorView.jsx';
+import LimitEditorActionHelper from '../limits/LimitEditorActionHelper.js';
 import ValidationHelper from 'sdc-app/common/helpers/ValidationHelper.js';
 
 const mapStateToProps = ({licenseModel: {licenseKeyGroup}}) => {
 
 
-	let {data, genericFieldInfo, formReady} = licenseKeyGroup.licenseKeyGroupsEditor;
+	let {data, genericFieldInfo, formReady, limitsList} = licenseKeyGroup.licenseKeyGroupsEditor;
 
 	let previousData, LKGNames = {};
 	const licenseKeyGroupId = data ? data.id : null;
@@ -33,7 +34,7 @@
 
 	const list = licenseKeyGroup.licenseKeyGroupsList;
 	for (let i = 0; i < list.length; i++) {
-		LKGNames[list[i].name] = list[i].id;
+		LKGNames[list[i].name.toLowerCase()] = list[i].id;
 	}
 
 	return {
@@ -42,7 +43,8 @@
 		genericFieldInfo,
 		isFormValid,
 		formReady,
-		LKGNames
+		LKGNames,
+		limitsList
 	};
 };
 
@@ -50,11 +52,13 @@
 	return {
 		onDataChanged: (deltaData, formName, customValidations) => ValidationHelper.dataChanged(dispatch, {deltaData, formName, customValidations}),
 		onCancel: () => LicenseKeyGroupsActionHelper.closeLicenseKeyGroupEditor(dispatch),
-		onSubmit: ({previousLicenseKeyGroup, licenseKeyGroup}) => {
-			LicenseKeyGroupsActionHelper.closeLicenseKeyGroupEditor(dispatch);
+		onSubmit: ({previousLicenseKeyGroup, licenseKeyGroup, keepOpen}) => {
+			if (!keepOpen) {LicenseKeyGroupsActionHelper.closeLicenseKeyGroupEditor(dispatch);}
 			LicenseKeyGroupsActionHelper.saveLicenseKeyGroup(dispatch, {licenseModelId, previousLicenseKeyGroup, licenseKeyGroup, version});
 		},
-		onValidateForm: (formName) => ValidationHelper.validateForm(dispatch, formName)
+		onValidateForm: (formName) => ValidationHelper.validateForm(dispatch, formName),
+		onCloseLimitEditor: () => LimitEditorActionHelper.closeLimitsEditor(dispatch),
+		onOpenLimitEditor: (limit) => LimitEditorActionHelper.openLimitsEditor(dispatch, {limit})
 	};
 };
 
diff --git a/openecomp-ui/src/sdc-app/onboarding/licenseModel/licenseKeyGroups/LicenseKeyGroupsEditorReducer.js b/openecomp-ui/src/sdc-app/onboarding/licenseModel/licenseKeyGroups/LicenseKeyGroupsEditorReducer.js
index 090c971..b1a22f3 100644
--- a/openecomp-ui/src/sdc-app/onboarding/licenseModel/licenseKeyGroups/LicenseKeyGroupsEditorReducer.js
+++ b/openecomp-ui/src/sdc-app/onboarding/licenseModel/licenseKeyGroups/LicenseKeyGroupsEditorReducer.js
@@ -14,20 +14,30 @@
  * permissions and limitations under the License.
  */
 import {actionTypes, defaultState, LKG_FORM_NAME} from './LicenseKeyGroupsConstants.js';
+import moment from 'moment';
+import {DATE_FORMAT} from 'sdc-app/onboarding/OnboardingConstants.js';
 
 export default (state = {}, action) => {
 	switch (action.type) {
 		case actionTypes.licenseKeyGroupsEditor.OPEN:
+			let licenseKeyGroupData = {...action.licenseKeyGroup};
+			let {startDate, expiryDate} = licenseKeyGroupData;
+			if (startDate) {
+				licenseKeyGroupData.startDate = moment(startDate, DATE_FORMAT).format(DATE_FORMAT);
+			}
+			if (expiryDate) {
+				licenseKeyGroupData.expiryDate = moment(expiryDate, DATE_FORMAT).format(DATE_FORMAT);
+			}
 			return {
 				...state,
-				data: action.licenseKeyGroup ? {...action.licenseKeyGroup} : defaultState.licenseKeyGroupsEditor,
+				data: action.licenseKeyGroup ? licenseKeyGroupData : defaultState.licenseKeyGroupsEditor,
 				formReady: null,
 				formName: LKG_FORM_NAME,
 				genericFieldInfo: {
 					'description' : {
 						isValid: true,
 						errorText: '',
-						validations: [{type: 'required', data: true}, {type: 'maxLength', data: 1000}]
+						validations: [{type: 'maxLength', data: 1000}]
 					},
 					'name' : {
 						isValid: true,
@@ -43,9 +53,39 @@
 						isValid: true,
 						errorText: '',
 						validations: []
+					},
+					'thresholdUnits' : {
+						isValid: true,
+						errorText: '',
+						validations: []
+					},
+					'thresholdValue' : {
+						isValid: true,
+						errorText: '',
+						validations: []
+					},
+					'increments' : {
+						isValid: true,
+						errorText: '',
+						validations: [{type: 'maxLength', data: 120}]
+					},
+					'startDate': {
+						isValid: true,
+						errorText: '',
+						validations: []
+					},
+					'expiryDate': {
+						isValid: true,
+						errorText: '',
+						validations: []
 					}
 				}
 			};
+		case actionTypes.licenseKeyGroupsEditor.LIMITS_LIST_LOADED:
+			return {
+				...state,
+				limitsList: action.response.results
+			};	
 		case actionTypes.licenseKeyGroupsEditor.CLOSE:
 			return {};
 		default:
diff --git a/openecomp-ui/src/sdc-app/onboarding/licenseModel/licenseKeyGroups/LicenseKeyGroupsEditorView.jsx b/openecomp-ui/src/sdc-app/onboarding/licenseModel/licenseKeyGroups/LicenseKeyGroupsEditorView.jsx
index b95efd0..647e205 100644
--- a/openecomp-ui/src/sdc-app/onboarding/licenseModel/licenseKeyGroups/LicenseKeyGroupsEditorView.jsx
+++ b/openecomp-ui/src/sdc-app/onboarding/licenseModel/licenseKeyGroups/LicenseKeyGroupsEditorView.jsx
@@ -17,27 +17,43 @@
 import i18n from 'nfvo-utils/i18n/i18n.js';
 import Validator from 'nfvo-utils/Validator.js';
 
+import Tabs from 'sdc-ui/lib/react/Tabs.js';
+import Tab from 'sdc-ui/lib/react/Tab.js';
+
+import Button from 'sdc-ui/lib/react/Button.js';
 import Form from 'nfvo-components/input/validation/Form.jsx';
 import Input from 'nfvo-components/input/validation/Input.jsx';
 import GridSection from 'nfvo-components/grid/GridSection.jsx';
 import GridItem from 'nfvo-components/grid/GridItem.jsx';
-import {optionsInputValues as licenseKeyGroupOptionsInputValues, LKG_FORM_NAME} from './LicenseKeyGroupsConstants.js';
+import {optionsInputValues as licenseKeyGroupOptionsInputValues, LKG_FORM_NAME, tabIds} from './LicenseKeyGroupsConstants.js';
+import {optionsInputValues as LicenseModelOptionsInputValues} from '../LicenseModelConstants.js';
+import {validateStartDate, thresholdValueValidation} from '../LicenseModelValidations.js';
 import {other as optionInputOther} from 'nfvo-components/input/validation/InputOptions.jsx';
 import InputOptions from 'nfvo-components/input/validation/InputOptions.jsx';
 
-const LicenseKeyGroupPropType = React.PropTypes.shape({
+import {DATE_FORMAT} from 'sdc-app/onboarding/OnboardingConstants.js';
+
+import LicenseKeyGroupsLimits from './LicenseKeyGroupsLimits.js';
+import {limitType, NEW_LIMIT_TEMP_ID} from '../limits/LimitEditorConstants.js';
+
+ const LicenseKeyGroupPropType = React.PropTypes.shape({
 	id: React.PropTypes.string,
 	name: React.PropTypes.string,
 	description: React.PropTypes.string,
+	increments: React.PropTypes.string,
 	operationalScope: React.PropTypes.shape({
 		choices: React.PropTypes.array,
 		other: React.PropTypes.string
 	}),
-	type: React.PropTypes.string
+	type: React.PropTypes.string,
+	 thresholdUnits: React.PropTypes.string,
+	 thresholdValue: React.PropTypes.number,
+	 startDate: React.PropTypes.string,
+	 expiryDate: React.PropTypes.string
 });
 
-const LicenseKeyGroupFormContent = ({data, onDataChanged, genericFieldInfo, validateName, validateOperationalScope}) => {
-	let {name, description, operationalScope, type} = data;
+const LicenseKeyGroupFormContent = ({data, onDataChanged, genericFieldInfo, validateName, validateStartDate, thresholdValueValidation}) => {
+	let {name, description, increments, operationalScope, type, thresholdUnits, thresholdValue, startDate, expiryDate} = data;
 	return (
 		<GridSection>
 			<GridItem colSpan={2}>
@@ -55,11 +71,10 @@
 				<InputOptions
 					onInputChange={()=>{}}
 					isMultiSelect={true}
-					isRequired={true}
 					onEnumChange={operationalScope => onDataChanged({operationalScope:{choices: operationalScope, other: ''}},
-						LKG_FORM_NAME, {operationalScope: validateOperationalScope})}
+						LKG_FORM_NAME)}
 					onOtherChange={operationalScope => onDataChanged({operationalScope:{choices: [optionInputOther.OTHER],
-						other: operationalScope}}, LKG_FORM_NAME, {operationalScope: validateOperationalScope})}
+						other: operationalScope}}, LKG_FORM_NAME)}
 					label={i18n('Operational Scope')}
 					data-test-id='create-lkg-operational-scope'
 					type='select'
@@ -77,7 +92,6 @@
 					value={description}
 					isValid={genericFieldInfo.description.isValid}
 					errorText={genericFieldInfo.description.errorText}
-					isRequired={true}
 					type='textarea'
 					overlayPos='bottom' />
 			</GridItem>
@@ -101,6 +115,82 @@
 					}
 				</Input>
 			</GridItem>
+			<GridItem>
+				<Input
+					onChange={e => {
+						// setting the unit to the correct value
+						const selectedIndex = e.target.selectedIndex;
+						const val = e.target.options[selectedIndex].value;
+						onDataChanged({thresholdUnits: val}, LKG_FORM_NAME);
+						// TODO make sure that the value is valid too
+						onDataChanged({thresholdValue: thresholdValue}, LKG_FORM_NAME,{thresholdValue : thresholdValueValidation});}
+
+					}
+					value={thresholdUnits}
+					label={i18n('Threshold Units')}
+					data-test-id='create-ep-threshold-units'
+					isValid={genericFieldInfo.thresholdUnits.isValid}
+					errorText={genericFieldInfo.thresholdUnits.errorText}
+					groupClassName='bootstrap-input-options'
+					className='input-options-select'
+					type='select' >
+					{LicenseModelOptionsInputValues.THRESHOLD_UNITS.map(mtype =>
+						<option key={mtype.enum} value={mtype.enum}>{`${mtype.title}`}</option>)}
+				</Input>
+			</GridItem>
+			<GridItem>
+				<Input
+					className='entitlement-pools-form-row-threshold-value'
+					onChange={thresholdValue => onDataChanged({thresholdValue}, LKG_FORM_NAME,
+						{thresholdValue : thresholdValueValidation})}
+					label={i18n('Threshold Value')}
+					isValid={genericFieldInfo.thresholdValue.isValid}
+					errorText={genericFieldInfo.thresholdValue.errorText}
+					data-test-id='create-ep-threshold-value'
+					value={thresholdValue}
+					type='text'/>
+			</GridItem>
+				<GridItem>
+				<Input
+					type='date'
+					label={i18n('Start Date')}
+					value={startDate}
+					dateFormat={DATE_FORMAT}
+					startDate={startDate}
+					endDate={expiryDate}
+					onChange={startDate => onDataChanged(
+						{startDate: startDate ? startDate.format(DATE_FORMAT) : ''},
+						LKG_FORM_NAME,
+						{startDate: validateStartDate}
+					)}
+					isValid={genericFieldInfo.startDate.isValid}
+					errorText={genericFieldInfo.startDate.errorText}
+					selectsStart/>
+			</GridItem>
+			<GridItem>
+				<Input
+					type='date'
+					label={i18n('Expiry Date')}
+					value={expiryDate}
+					dateFormat={DATE_FORMAT}
+					startDate={startDate}
+					endDate={expiryDate}
+					onChange={expiryDate => {
+						onDataChanged({expiryDate: expiryDate ? expiryDate.format(DATE_FORMAT) : ''}, LKG_FORM_NAME);
+						onDataChanged({startDate}, LKG_FORM_NAME, {startDate: validateStartDate});
+					}}
+					isValid={genericFieldInfo.expiryDate.isValid}
+					errorText={genericFieldInfo.expiryDate.errorText}
+					selectsEnd/>
+			</GridItem>
+			<GridItem colSpan={2}>
+				<Input
+					onChange={increments => onDataChanged({increments}, LKG_FORM_NAME)}
+					label={i18n('Increments')}
+					value={increments}
+					data-test-id='create-ep-increments'
+					type='text'/>
+			</GridItem>
 		</GridSection>
 	);
 };
@@ -120,36 +210,100 @@
 		data: {}
 	};
 
+	componentDidUpdate(prevProps) {				
+		if (this.props.formReady && this.props.formReady !== prevProps.formReady) { // if form validation succeeded -> continue with submit
+			this.submit();
+		}
+	}
+
+	state = {
+		localFeatureGroupsListFilter: '',
+		selectedTab: tabIds.GENERAL,
+		selectedLimit: ''
+	};
+
 	render() {
-		let {data = {}, onDataChanged, isReadOnlyMode, genericFieldInfo} = this.props;
+		let {data = {}, onDataChanged, isReadOnlyMode, onCloseLimitEditor, genericFieldInfo, limitsList = []} = this.props;
+		let {selectedTab} = this.state;
+		const isTabsDisabled = !data.id || !this.props.isFormValid;
 		return (
-			<div>
-		{ genericFieldInfo &&
-			<Form
-				ref='validationForm'
-				hasButtons={true}
-				onSubmit={ () => this.submit() }
-				onReset={ () => this.props.onCancel() }
-				isValid={this.props.isFormValid}
-				formReady={this.props.formReady}
-				onValidateForm={() => this.props.onValidateForm(LKG_FORM_NAME) }
-				labledButtons={true}
-				isReadOnlyMode={isReadOnlyMode}
-				className='license-key-groups-form'>
-				<LicenseKeyGroupFormContent
-					data={data}
-					onDataChanged={onDataChanged}
-					genericFieldInfo={genericFieldInfo}
-					validateName={(value)=> this.validateName(value)}
-					validateOperationalScope={this.validateOperationalScope}/>
-			</Form>}
+			<div className='license-keygroup-editor'>
+				<Tabs
+					type='menu' 
+					activeTab={selectedTab} 
+					onTabClick={(tabIndex)=>{
+						if (tabIndex === tabIds.ADD_LIMIT_BUTTON)  {
+							this.onAddLimit();
+						} else {
+							this.setState({selectedTab: tabIndex});
+							onCloseLimitEditor();
+							this.setState({selectedLimit: ''});
+						}
+					}} 
+					invalidTabs={[]}>
+					<Tab tabId={tabIds.GENERAL} data-test-id='general-tab' title={i18n('General')}>
+						{ genericFieldInfo &&
+							<Form
+								ref='validationForm'
+								hasButtons={false}
+								isValid={this.props.isFormValid}
+								formReady={this.props.formReady}
+								onValidateForm={() => this.props.onValidateForm(LKG_FORM_NAME) }
+								labledButtons={true}
+								isReadOnlyMode={isReadOnlyMode}
+								className='license-model-form license-key-groups-form'>
+									<LicenseKeyGroupFormContent
+										data={data}
+										onDataChanged={onDataChanged}
+										genericFieldInfo={genericFieldInfo}
+										validateName={(value)=> this.validateName(value)}
+										validateStartDate={(value, state)=> validateStartDate(value, state)}
+										thresholdValueValidation={(value, state) => thresholdValueValidation(value, state)}/>
+							</Form>}
+
+					</Tab>
+					<Tab tabId={tabIds.SP_LIMITS} disabled={isTabsDisabled} data-test-id='general-tab' title={i18n('SP Limits')}>
+						{selectedTab === tabIds.SP_LIMITS &&
+							<LicenseKeyGroupsLimits 
+								limitType={limitType.SERVICE_PROVIDER} 
+								limitsList={limitsList.filter(item => item.type === limitType.SERVICE_PROVIDER)}
+								selectedLimit={this.state.selectedLimit}
+								onCloseLimitEditor={() => this.onCloseLimitEditor()}
+								onSelectLimit={limit => this.onSelectLimit(limit)}/>}
+					</Tab>
+					<Tab tabId={tabIds.VENDOR_LIMITS} disabled={isTabsDisabled} data-test-id='general-tab' title={i18n('Vendor Limits')}>
+						{selectedTab === tabIds.VENDOR_LIMITS && 
+							<LicenseKeyGroupsLimits 
+								limitType={limitType.VENDOR} 
+								limitsList={limitsList.filter(item => item.type === limitType.VENDOR)}
+								selectedLimit={this.state.selectedLimit}
+								onCloseLimitEditor={() => this.onCloseLimitEditor()}
+								onSelectLimit={limit => this.onSelectLimit(limit)}/>}
+					</Tab>
+					{selectedTab !== tabIds.GENERAL ? 
+						<Button disabled={this.state.selectedLimit} className='add-limit-button' tabId={tabIds.ADD_LIMIT_BUTTON} btnType='link' iconName='plus'>{i18n('Add Limit')}</Button> : 
+						<div></div> // Render empty div to not break tabs
+					}
+				</Tabs>
+				
+				<GridSection className='license-model-modal-buttons license-key-group-editor-buttons'>
+					{!this.state.selectedLimit && <Button btnType='default' disabled={!this.props.isFormValid} onClick={() => this.submit()} type='reset'>{i18n('Save')}</Button>}
+					<Button btnType={this.state.selectedLimit ? 'default' : 'outline'} onClick={() => this.props.onCancel()} type='reset'>
+						{i18n('Cancel')}
+					</Button>
+				</GridSection>
 			</div>
+
 		);
 	}
 
 	submit() {
-		const {data: licenseKeyGroup, previousData: previousLicenseKeyGroup} = this.props;
-		this.props.onSubmit({licenseKeyGroup, previousLicenseKeyGroup});
+		const {data: licenseKeyGroup, previousData: previousLicenseKeyGroup, formReady, onValidateForm, onSubmit} = this.props;
+		if (!formReady) {
+			onValidateForm(LKG_FORM_NAME);
+		} else {
+			onSubmit({licenseKeyGroup, previousLicenseKeyGroup});
+		}
 	}
 
 	validateName(value) {
@@ -160,27 +314,23 @@
 			{isValid: false, errorText: i18n('License key group by the name \'' + value + '\' already exists. License key group name must be unique')};
 	}
 
-	validateOperationalScope(value) {
-		if (value && value.choices && value.choices.length > 0) {
-			if (value.choices[0] !== optionInputOther.OTHER)
-			{
-				return {
-					isValid: true,
-					errorText: ''
-				};
-			} else {
-				if ( value.other ) {
-					return {
-						isValid: true,
-						errorText: ''
-					};
-				}
-			}
+	onSelectLimit(limit) {
+		if (limit.id === this.state.selectedLimit) {
+			this.setState({selectedLimit: ''});
+			return;
 		}
-		return {
-			isValid: false,
-			errorText: 'Field is required'
-		};
+		this.setState({selectedLimit: limit.id});
+		this.props.onOpenLimitEditor(limit);
+	}
+
+	onCloseLimitEditor() {
+		this.setState({selectedLimit: ''});
+		this.props.onCloseLimitEditor();
+	}
+
+	onAddLimit() {
+		this.setState({selectedLimit: NEW_LIMIT_TEMP_ID});
+		this.props.onOpenLimitEditor();
 	}
 }
 
diff --git a/openecomp-ui/src/sdc-app/onboarding/licenseModel/licenseKeyGroups/LicenseKeyGroupsLimits.js b/openecomp-ui/src/sdc-app/onboarding/licenseModel/licenseKeyGroups/LicenseKeyGroupsLimits.js
new file mode 100644
index 0000000..7745a12
--- /dev/null
+++ b/openecomp-ui/src/sdc-app/onboarding/licenseModel/licenseKeyGroups/LicenseKeyGroupsLimits.js
@@ -0,0 +1,57 @@
+/*!
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+import {connect} from 'react-redux';
+import i18n from 'nfvo-utils/i18n/i18n.js';
+import {actionTypes as globalModalActionTypes} from 'nfvo-components/modal/GlobalModalConstants.js';
+import ValidationHelper from 'sdc-app/common/helpers/ValidationHelper.js';
+import Limits from 'sdc-app/onboarding/licenseModel/limits/Limits.jsx';
+
+import LicenseKeyGroupsActionHelper from './LicenseKeyGroupsActionHelper.js';
+
+const mapStateToProps = ({licenseModel: {licenseKeyGroup: {licenseKeyGroupsEditor: {data}}, limitEditor}, currentScreen}) => {	
+	let  {props: {licenseModelId, version}} = currentScreen;
+	return {
+		parent: data,		
+		limitEditor,
+		licenseModelId,
+		version
+	};
+};
+
+const mapActionsToProps = (dispatch) => {
+	return {
+		onDataChanged: (deltaData, formName, customValidations) => ValidationHelper.dataChanged(dispatch, {deltaData, formName, customValidations}),
+		onSubmit: (limit, licenseKeyGroup, licenseModelId, version) => LicenseKeyGroupsActionHelper.submitLimit(dispatch,
+			{
+				limit,
+				licenseKeyGroup,
+				licenseModelId,
+				version}),		
+		onDelete: ({limit, parent, licenseModelId, version, onCloseLimitEditor, selectedLimit}) => dispatch({
+			type: globalModalActionTypes.GLOBAL_MODAL_WARNING,
+			data:{
+				msg: i18n(`Are you sure you want to delete ${limit.name}?`),
+				confirmationButtonText: i18n('Delete'),
+				title: i18n('Warning'),
+				onConfirmed: ()=> LicenseKeyGroupsActionHelper.deleteLimit(dispatch, {limit, licenseKeyGroup: parent, licenseModelId, version}).then(() => 
+					selectedLimit === limit.id && onCloseLimitEditor()
+				)
+			}
+		})
+	};
+};
+
+export default connect(mapStateToProps, mapActionsToProps)(Limits);
\ No newline at end of file
diff --git a/openecomp-ui/src/sdc-app/onboarding/licenseModel/licenseKeyGroups/LicenseKeyGroupsListEditor.js b/openecomp-ui/src/sdc-app/onboarding/licenseModel/licenseKeyGroups/LicenseKeyGroupsListEditor.js
index e2c6c30..a8cf1eb 100644
--- a/openecomp-ui/src/sdc-app/onboarding/licenseModel/licenseKeyGroups/LicenseKeyGroupsListEditor.js
+++ b/openecomp-ui/src/sdc-app/onboarding/licenseModel/licenseKeyGroups/LicenseKeyGroupsListEditor.js
@@ -38,7 +38,7 @@
 const mapActionsToProps = (dispatch, {licenseModelId, version}) => {	
 	return {
 		onAddLicenseKeyGroupClick: () => LicenseKeyGroupsActionHelper.openLicenseKeyGroupsEditor(dispatch),
-		onEditLicenseKeyGroupClick: licenseKeyGroup => LicenseKeyGroupsActionHelper.openLicenseKeyGroupsEditor(dispatch, {licenseKeyGroup}),
+		onEditLicenseKeyGroupClick: licenseKeyGroup => LicenseKeyGroupsActionHelper.openLicenseKeyGroupsEditor(dispatch, {licenseKeyGroup, licenseModelId, version}),
 		onDeleteLicenseKeyGroupClick: licenseKeyGroup => dispatch({
 			type: globalMoadlActions.GLOBAL_MODAL_WARNING,
 			data:{
diff --git a/openecomp-ui/src/sdc-app/onboarding/licenseModel/licenseKeyGroups/LicenseKeyGroupsListEditorView.jsx b/openecomp-ui/src/sdc-app/onboarding/licenseModel/licenseKeyGroups/LicenseKeyGroupsListEditorView.jsx
index b8ccd68..1a7f2b0 100644
--- a/openecomp-ui/src/sdc-app/onboarding/licenseModel/licenseKeyGroups/LicenseKeyGroupsListEditorView.jsx
+++ b/openecomp-ui/src/sdc-app/onboarding/licenseModel/licenseKeyGroups/LicenseKeyGroupsListEditorView.jsx
@@ -21,7 +21,7 @@
 import ListEditorItemView from 'nfvo-components/listEditor/ListEditorItemView.jsx';
 
 import LicenseKeyGroupsEditor from './LicenseKeyGroupsEditor.js';
-import InputOptions, {other as optionInputOther} from 'nfvo-components/input/inputOptions/InputOptions.jsx';
+import InputOptions, {other as optionInputOther} from 'nfvo-components/input/validation/InputOptions.jsx';
 import {optionsInputValues} from './LicenseKeyGroupsConstants';
 
 class LicenseKeyGroupsListEditorView extends React.Component {
@@ -61,7 +61,7 @@
 					isReadOnlyMode={isReadOnlyMode}>
 					{this.filterList().map(licenseKeyGroup => (this.renderLicenseKeyGroupListItem(licenseKeyGroup, isReadOnlyMode)))}
 				</ListEditorView>
-				<Modal show={isDisplayModal} bsSize='large' animation={true} className='onborading-modal license-key-groups-modal'>
+				<Modal show={isDisplayModal} bsSize='large' animation={true} className='onborading-modal license-model-modal license-key-groups-modal'>
 					<Modal.Header>
 						<Modal.Title>{`${isModalInEditMode ? i18n('Edit License Key Group') : i18n('Create New License Key Group')}`}</Modal.Title>
 					</Modal.Header>
@@ -122,16 +122,20 @@
 	}
 
 	getOperationalScopes(operationalScope) {
-		if(operationalScope.choices.toString() === i18n(optionInputOther.OTHER) && operationalScope.other !== '') {
+		
+		if(operationalScope.choices && operationalScope.choices.toString() === i18n(optionInputOther.OTHER)) {
 			return operationalScope.other;
 		}
-		else {
+		else if (operationalScope.choices) {
 			let allOpScopes = '';
 			for (let opScope of operationalScope.choices) {
 				allOpScopes += allOpScopes === '' ? InputOptions.getTitleByName(optionsInputValues, opScope) : `, ${InputOptions.getTitleByName(optionsInputValues, opScope)}`;
 			}
 			return allOpScopes;
-		}
+		} 
+		else {
+			return '';
+		} 
 	}
 
 	extractValue(item) {
diff --git a/openecomp-ui/src/sdc-app/onboarding/licenseModel/limits/LimitEditor.js b/openecomp-ui/src/sdc-app/onboarding/licenseModel/limits/LimitEditor.js
new file mode 100644
index 0000000..d483383
--- /dev/null
+++ b/openecomp-ui/src/sdc-app/onboarding/licenseModel/limits/LimitEditor.js
@@ -0,0 +1,25 @@
+import {connect} from 'react-redux';
+import ValidationHelper from 'sdc-app/common/helpers/ValidationHelper.js';
+import LimitEditor from './LimitEditor.jsx';
+
+const mapStateToProps = ({licenseModel: {limitEditor}}) => {
+
+	let {data, genericFieldInfo, formReady} = limitEditor;	
+	let isFormValid = ValidationHelper.checkFormValid(genericFieldInfo);
+
+	return {
+		data,		
+		genericFieldInfo,
+		isFormValid,
+		formReady
+	};
+};
+
+const mapActionsToProps = (dispatch) => {
+	return {
+		onDataChanged: (deltaData, formName, customValidations) => ValidationHelper.dataChanged(dispatch, {deltaData, formName, customValidations}),
+		onValidateForm: (formName) => ValidationHelper.validateForm(dispatch, formName)
+	};
+};
+
+export default connect(mapStateToProps, mapActionsToProps)(LimitEditor);
\ No newline at end of file
diff --git a/openecomp-ui/src/sdc-app/onboarding/licenseModel/limits/LimitEditor.jsx b/openecomp-ui/src/sdc-app/onboarding/licenseModel/limits/LimitEditor.jsx
new file mode 100644
index 0000000..f70f917
--- /dev/null
+++ b/openecomp-ui/src/sdc-app/onboarding/licenseModel/limits/LimitEditor.jsx
@@ -0,0 +1,193 @@
+import React from 'react';
+import i18n from 'nfvo-utils/i18n/i18n.js';
+import Form from 'nfvo-components/input/validation/Form.jsx';
+import Input from 'nfvo-components/input/validation/Input.jsx';
+import GridSection from 'nfvo-components/grid/GridSection.jsx';
+import GridItem from 'nfvo-components/grid/GridItem.jsx';
+import {LIMITS_FORM_NAME, selectValues} from './LimitEditorConstants.js';
+import Button from 'sdc-ui/lib/react/Button.js';
+import Validator from 'nfvo-utils/Validator.js';
+
+const LimitPropType = React.PropTypes.shape({
+	id: React.PropTypes.string,
+	name: React.PropTypes.string,
+	description: React.PropTypes.string,
+	metric: React.PropTypes.string,
+	value: React.PropTypes.number,
+	aggregationFunction: React.PropTypes.string,
+	time: React.PropTypes.string,
+	unit: React.PropTypes.number
+});
+
+class LimitEditor extends React.Component {
+	static propTypes = {
+		data: LimitPropType,
+		limitsNames: React.PropTypes.object,
+		isReadOnlyMode: React.PropTypes.bool,
+		isFormValid: React.PropTypes.bool,
+		formReady: React.PropTypes.bool,
+		genericFieldInfo: React.PropTypes.object.isRequired,
+		onDataChanged: React.PropTypes.func.isRequired,
+		onSubmit: React.PropTypes.func.isRequired,
+		onValidateForm: React.PropTypes.func.isRequired,
+		onCancel: React.PropTypes.func.isRequired
+	};
+
+	componentDidUpdate(prevProps) {				
+		if (this.props.formReady && this.props.formReady !== prevProps.formReady) { 
+			this.submit();
+		}
+	}
+
+	render() {
+		let {data = {}, onDataChanged, isReadOnlyMode, genericFieldInfo, onCancel, isFormValid, formReady, onValidateForm} = this.props;
+		let {name, description, metric, value, aggregationFunction, time, unit} = data;
+		return (
+			<div className='limit-editor'>
+			{!data.id && 
+			<div className='limit-editor-title'>
+				{data.name ? data.name : i18n('NEW LIMIT')}
+			</div>}
+			{
+				genericFieldInfo && 
+				<Form
+					ref='validationForm'
+					hasButtons={false}				
+					isValid={isFormValid}
+					formReady={formReady}
+					onValidateForm={() => onValidateForm(LIMITS_FORM_NAME) }
+					labledButtons={false}
+					isReadOnlyMode={isReadOnlyMode}
+					className='limit-editor-form'>					
+					<GridSection className='limit-editor-form-grid-section'>
+						<GridItem colSpan={2}>
+							<Input
+								onChange={name => onDataChanged({name}, LIMITS_FORM_NAME, {name: () => this.validateName(name)})}
+								label={i18n('Name')}
+								data-test-id='limit-editor-name'
+								value={name}
+								isValid={genericFieldInfo.name.isValid}
+								errorText={genericFieldInfo.name.errorText}
+								isRequired={true}
+								type='text'/>
+						</GridItem>
+						<GridItem colSpan={2}>
+							<Input
+								onChange={description => onDataChanged({description}, LIMITS_FORM_NAME)}
+								label={i18n('Description')}
+								data-test-id='limit-editor-description'
+								value={description}
+								isValid={genericFieldInfo.description.isValid}
+								errorText={genericFieldInfo.description.errorText}
+								isRequired={false}
+								type='text'/>
+						</GridItem>
+						<GridItem colSpan={2}>
+							<Input
+								onChange={e => {									
+									const selectedIndex = e.target.selectedIndex;
+									const val = e.target.options[selectedIndex].value;
+									onDataChanged({metric: val}, LIMITS_FORM_NAME);}
+								}
+								isRequired={true}
+								value={metric}
+								label={i18n('Metric')}
+								data-test-id='limit-editor-metric'
+								isValid={genericFieldInfo.metric.isValid}
+								errorText={genericFieldInfo.metric.errorText}
+								groupClassName='bootstrap-input-options'
+								className='input-options-select'
+								type='select' >
+								{selectValues.METRIC.map(mtype =>
+									<option key={mtype.enum} value={mtype.enum}>{`${mtype.title}`}</option>)}
+							</Input>
+						</GridItem>
+						<GridItem>
+							<Input
+								onChange={value => onDataChanged({value}, LIMITS_FORM_NAME)}
+								label={i18n('Metric value')}
+								data-test-id='limit-editor-metric-value'
+								value={value}
+								isValid={genericFieldInfo.value.isValid}
+								errorText={genericFieldInfo.value.errorText}
+								isRequired={true}
+								type='number'/>
+						</GridItem>
+						<GridItem>
+							<Input
+								onChange={unit => onDataChanged({unit}, LIMITS_FORM_NAME)}
+								label={i18n('Units')}
+								data-test-id='limit-editor-units'
+								value={unit}
+								isValid={genericFieldInfo.unit.isValid}
+								errorText={genericFieldInfo.unit.errorText}
+								isRequired={false}
+								type='number'/>
+						</GridItem>
+						<GridItem colSpan={2}>
+							<Input
+								onChange={e => {									
+									const selectedIndex = e.target.selectedIndex;
+									const val = e.target.options[selectedIndex].value;
+									onDataChanged({aggregationFunction: val}, LIMITS_FORM_NAME);}
+								}
+								value={aggregationFunction}
+								label={i18n('Aggregation Function')}
+								data-test-id='limit-editor-aggregation-function'
+								isValid={genericFieldInfo.aggregationFunction.isValid}
+								errorText={genericFieldInfo.aggregationFunction.errorText}
+								groupClassName='bootstrap-input-options'
+								className='input-options-select'
+								type='select' >
+								{selectValues.AGGREGATION_FUNCTION.map(mtype =>
+									<option key={mtype.enum} value={mtype.enum}>{`${mtype.title}`}</option>)}
+							</Input>
+						</GridItem>
+						<GridItem>
+							<Input
+								onChange={e => {									
+									const selectedIndex = e.target.selectedIndex;
+									const val = e.target.options[selectedIndex].value;
+									onDataChanged({time: val}, LIMITS_FORM_NAME);}
+								}
+								value={time}
+								label={i18n('Time')}
+								data-test-id='limit-editor-time'
+								isValid={genericFieldInfo.time.isValid}
+								errorText={genericFieldInfo.time.errorText}
+								groupClassName='bootstrap-input-options'
+								className='input-options-select'
+								type='select' >
+								{selectValues.TIME.map(mtype =>
+									<option key={mtype.enum} value={mtype.enum}>{`${mtype.title}`}</option>)}
+							</Input>							
+						</GridItem>
+					</GridSection>
+					<GridSection className='limit-editor-buttons'>
+						<Button btnType='outline'  disabled={!isFormValid} onClick={() => this.submit()} type='reset'>{i18n('Save')}</Button>	
+						<Button btnType='outline' color='gray' onClick={onCancel} type='reset'>{i18n('Cancel')}</Button>
+					</GridSection>						
+				</Form>	
+			}	
+			</div>
+		);
+	}
+
+	validateName(value) {
+		const {data: {id}, limitsNames} = this.props;
+		const isExists = Validator.isItemNameAlreadyExistsInList({itemId: id, itemName: value, list: limitsNames});
+
+		return !isExists ?  {isValid: true, errorText: ''} :
+		{isValid: false, errorText: i18n('Limit by the name \'' + value + '\' already exists. Limit name must be unique')};
+	}
+
+	submit() {
+		if (!this.props.formReady) {
+			this.props.onValidateForm(LIMITS_FORM_NAME);
+		} else {
+			this.props.onSubmit();
+		}
+	}
+}
+
+export default LimitEditor;
\ No newline at end of file
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/images/SoftwareProductComponentsImageNavigationReducer.js b/openecomp-ui/src/sdc-app/onboarding/licenseModel/limits/LimitEditorActionHelper.js
similarity index 63%
rename from openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/images/SoftwareProductComponentsImageNavigationReducer.js
rename to openecomp-ui/src/sdc-app/onboarding/licenseModel/limits/LimitEditorActionHelper.js
index 20d1f5d..09c64ad 100644
--- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/images/SoftwareProductComponentsImageNavigationReducer.js
+++ b/openecomp-ui/src/sdc-app/onboarding/licenseModel/limits/LimitEditorActionHelper.js
@@ -13,20 +13,18 @@
  * or implied. See the License for the specific language governing
  * permissions and limitations under the License.
  */
-import {actionTypes} from './SoftwareProductComponentsImageConstants.js';
 
-export default (state = {}, action) => {
-	switch (action.type) {
+import {actionTypes} from './LimitEditorConstants.js';
 
-		case actionTypes.IMAGES_LIST_UPDATE:
-			if (action.componentId) {
-				return {
-					...state,
-					[action.componentId] : (action.response && action.response.length > 0)
-				};
-			}
-			return state;
-		default:
-			return state;
+
+const LimitEditorActionHelper = {
+	openLimitsEditor(dispatch, {limit}) {
+		dispatch({type: actionTypes.OPEN, limitItem: limit});
+	},
+
+	closeLimitsEditor(dispatch) {
+		dispatch({type: actionTypes.CLOSE});
 	}
 };
+
+export default LimitEditorActionHelper;
\ No newline at end of file
diff --git a/openecomp-ui/src/sdc-app/onboarding/licenseModel/limits/LimitEditorConstants.js b/openecomp-ui/src/sdc-app/onboarding/licenseModel/limits/LimitEditorConstants.js
new file mode 100644
index 0000000..1bef286
--- /dev/null
+++ b/openecomp-ui/src/sdc-app/onboarding/licenseModel/limits/LimitEditorConstants.js
@@ -0,0 +1,52 @@
+import keyMirror from 'nfvo-utils/KeyMirror.js';
+import i18n from 'nfvo-utils/i18n/i18n.js';
+// import InputOptions, {other as optionInputOther} from 'nfvo-components/input/inputOptions/InputOptions.jsx';
+
+export const actionTypes = keyMirror({
+	OPEN: null,
+	CLOSE: null,
+	DATA_CHANGED: null,
+});
+
+export const LIMITS_FORM_NAME = 'LIMITSFORM';
+
+export const selectValues = {
+	METRIC: [
+		{enum: '', title: i18n('please select…')},
+		{enum: 'Software_Instances_Count', title: 'Software Instances'},
+		{enum: 'Core', title: 'Core'},
+		{enum: 'CPU', title: 'CPU'},
+		{enum: 'Trunks', title: 'Trunks'},
+		{enum: 'User', title: 'User'},
+		{enum: 'Subscribers', title: 'Subscribers'},
+		{enum: 'Tenants', title: 'Tenants'},
+		{enum: 'Tokens', title: 'Tokens'},
+		{enum: 'Seats', title: 'Seats'},
+		{enum: 'Units_TB', title: 'Units-TB'},
+		{enum: 'Units_GB', title: 'Units-GB'},
+		{enum: 'Units_MB', title: 'Units-MB'}
+	],
+	AGGREGATION_FUNCTION: [
+		{enum: '', title: i18n('please select…')},
+		{enum: 'Peak', title: 'Peak'},
+		{enum: 'Average', title: 'Average'}
+	],
+	TIME: [
+		{enum: '', title: i18n('please select…')},
+		{enum: 'Hour', title: 'Hour'},
+		{enum: 'Day', title: 'Day'},
+		{enum: 'Month', title: 'Month'}
+	]
+	
+};
+
+export const limitType = {
+	SERVICE_PROVIDER: 'ServiceProvider',
+	VENDOR: 'Vendor'
+};
+
+export const defaultState = {
+	LIMITS_EDITOR_DATA: {}
+};
+
+export const NEW_LIMIT_TEMP_ID = 'NEW_LIMIT_TEMP_ID';
\ No newline at end of file
diff --git a/openecomp-ui/src/sdc-app/onboarding/licenseModel/limits/LimitEditorReducer.js b/openecomp-ui/src/sdc-app/onboarding/licenseModel/limits/LimitEditorReducer.js
new file mode 100644
index 0000000..2499093
--- /dev/null
+++ b/openecomp-ui/src/sdc-app/onboarding/licenseModel/limits/LimitEditorReducer.js
@@ -0,0 +1,70 @@
+/*!
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+import {actionTypes, LIMITS_FORM_NAME, defaultState} from './LimitEditorConstants.js';
+
+export default (state = {}, action) => {
+	switch (action.type) {
+		case actionTypes.OPEN:
+			return {
+				...state,				
+				data: action.limitItem ? {...action.limitItem} : defaultState.LIMITS_EDITOR_DATA,
+				formReady: null,
+				formName: LIMITS_FORM_NAME,
+				genericFieldInfo: {
+					'description' : {
+						isValid: true,
+						errorText: '',
+						validations: [{type: 'maxLength', data: 1000}]
+					},
+					'name' : {
+						isValid: true,
+						errorText: '',
+						validations: [{type: 'required', data: true}, {type: 'maxLength', data: 120}]
+					},
+					'metric' : {
+						isValid: true,
+						errorText: '',
+						validations: [{type: 'required', data: true}]
+					},
+					'value' : {
+						isValid: true,
+						errorText: '',
+						validations: [{type: 'required', data: true}, {type: 'numeric', data: true}, {type: 'minimum', data: 0}]
+					},
+					'unit' : {
+						isValid: true,
+						errorText: '',
+						validations: [{type: 'numeric', data: true}]
+					},
+					'aggregationFunction' : {
+						isValid: true,
+						errorText: '',
+						validations: []
+					},
+					'time' : {
+						isValid: true,
+						errorText: '',
+						validations: []
+					}
+				}
+			};
+		case actionTypes.CLOSE:
+			return {};
+		default:
+			return state;
+	}
+};
\ No newline at end of file
diff --git a/openecomp-ui/src/sdc-app/onboarding/licenseModel/limits/Limits.jsx b/openecomp-ui/src/sdc-app/onboarding/licenseModel/limits/Limits.jsx
new file mode 100644
index 0000000..ec5a1df
--- /dev/null
+++ b/openecomp-ui/src/sdc-app/onboarding/licenseModel/limits/Limits.jsx
@@ -0,0 +1,108 @@
+/*!
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+import React from 'react';
+import i18n from 'nfvo-utils/i18n/i18n.js';
+import ListEditorView from 'nfvo-components/listEditor/ListEditorView.jsx';
+import ListEditorItemView from 'nfvo-components/listEditor/ListEditorItemView.jsx';
+import LimitEditor from './LimitEditor.js'; 
+import {NEW_LIMIT_TEMP_ID, selectValues} from './LimitEditorConstants.js';
+
+const LimitItem = ({isReadOnlyMode, limit, onDelete, onSelect}) => {
+	const {name, description, metric,  value, aggregationFunction = '', time = ''} = limit;
+	const timeLabel = time ? `per ${time}` : '';
+	return (
+		<ListEditorItemView			
+			onDelete={onDelete}
+			onSelect={onSelect}
+			isReadOnlyMode={isReadOnlyMode}>
+			<div className='list-editor-item-view-field limit-name'>				
+				<div className='text name'>{name}</div>
+			</div>
+
+			<div className='list-editor-item-view-field limit-description'>				
+				<div className='text description'>{description}</div>
+			</div>
+
+			<div className='list-editor-item-view-field limit-metric-details'>			
+				<div className='text description'>{`${selectValues.METRIC.find(item => item.enum === metric).title} ${value} ${aggregationFunction} ${timeLabel}`}</div>
+			</div>			
+		</ListEditorItemView>
+	);
+};
+
+class Limits extends React.Component {
+
+	
+	state = {
+		localFilter: ''
+	};
+
+	render() {		
+		const {isReadOnlyMode = false, limitEditor, limitsList = [], onCloseLimitEditor, selectedLimit} = this.props;
+		let limitsNames = {};
+		for (let i = 0; i < limitsList.length; i++) {
+			limitsNames[limitsList[i].name.toLowerCase()] = limitsList[i].id;
+		}
+		return (
+			<div className='license-model-limits-view'>
+				<ListEditorView
+					isReadOnlyMode={isReadOnlyMode}>
+					{this.props.selectedLimit === NEW_LIMIT_TEMP_ID && limitEditor.data &&
+						<LimitEditor limitsNames={limitsNames} onCancel={onCloseLimitEditor} onSubmit={ () => this.submit()}/>
+					}
+					{limitsList.length === 0 && !limitEditor.data && <div className='no-limits-text'>{i18n('There are no limits')}</div>}
+					{limitsList.map(limit =>
+					<div key={limit.id}  className='limit-item-wrapper'>
+						<LimitItem 
+							onDelete={() => this.delete(limit)} 
+							onSelect={selectedLimit ? undefined : () => this.props.onSelectLimit(limit)}
+							clickable={!selectedLimit} 
+							isReadOnlyMode={isReadOnlyMode} 
+							limit={limit}/>
+						{limit.id === selectedLimit &&  limitEditor.data && <LimitEditor limitsNames={limitsNames} onCancel={onCloseLimitEditor} onSubmit={ () => this.submit()}/>}
+					</div> )}
+				</ListEditorView>
+				
+			</div>
+		);
+	}
+
+	submit() {
+		let {onSubmit, onCloseLimitEditor, parent, limitEditor, licenseModelId, version, limitType} = this.props;			
+		onSubmit({type: limitType, ...limitEditor.data}, parent, licenseModelId, version).then(() => onCloseLimitEditor());
+	}
+
+	delete(limit) {
+		let {onDelete, parent, licenseModelId, version, onCloseLimitEditor, selectedLimit} = this.props;
+		onDelete({limit, parent, licenseModelId, version, onCloseLimitEditor, selectedLimit});
+	}
+
+	filterList() {
+		let {limitsList = []} = this.props;
+		let {localFilter} = this.state;
+		if (localFilter.trim()) {
+			const filter = new RegExp(escape(localFilter), 'i');
+			return limitsList.filter(({name = '', description = ''}) => {
+				return escape(name).match(filter) || escape(description).match(filter);
+			});
+		}
+		else {
+			return limitsList;
+		}
+	}
+}
+
+export default Limits;
diff --git a/openecomp-ui/src/sdc-app/onboarding/licenseModel/limits/LimitsServer.js b/openecomp-ui/src/sdc-app/onboarding/licenseModel/limits/LimitsServer.js
new file mode 100644
index 0000000..1b8ecb9
--- /dev/null
+++ b/openecomp-ui/src/sdc-app/onboarding/licenseModel/limits/LimitsServer.js
@@ -0,0 +1,46 @@
+/*!
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+// items/{itemId}/users
+
+let list = [
+	
+];
+
+export default {
+	fetch() {
+		return Promise.resolve({
+			listCount: list.length,
+			results: list
+		});
+	},
+
+	put(url, payload) {
+		// let {removedUsers, addedUsers} = payload;
+		// users = users.filter(user => !removedUsers.map(user => user.userId).includes(user.userId)).concat(addedUsers);
+		payload.id = Math.random() * (1000 - 1) + 1;
+		list.push(payload);
+		return Promise.resolve();
+	},
+
+	destroy(url) {
+		const parts = url.split('/');
+		const id = parts[parts.length - 1];
+		let newList  = list.filter(item => item.id !== id);
+		list = newList;
+		return Promise.resolve();
+	}
+};
\ No newline at end of file
diff --git a/openecomp-ui/src/sdc-app/onboarding/licenseModel/overview/LicenseModelOverviewConstants.js b/openecomp-ui/src/sdc-app/onboarding/licenseModel/overview/LicenseModelOverviewConstants.js
index b5a27ed..56b2338 100644
--- a/openecomp-ui/src/sdc-app/onboarding/licenseModel/overview/LicenseModelOverviewConstants.js
+++ b/openecomp-ui/src/sdc-app/onboarding/licenseModel/overview/LicenseModelOverviewConstants.js
@@ -34,9 +34,9 @@
 	LM_DATA_CHANGED: null
 });
 
-export const selectedButton = keyMirror({
-	VLM_LIST_VIEW: null,
-	NOT_IN_USE: null
-});
+export const selectedButton = {
+	VLM_LIST_VIEW: 'VLM_LIST_VIEW',
+	NOT_IN_USE: 'NOT_IN_USE'
+};
 
 export const VLM_DESCRIPTION_FORM = 'VLMDEWSCRIPTIONFORM';
diff --git a/openecomp-ui/src/sdc-app/onboarding/licenseModel/overview/LicenseModelOverviewView.jsx b/openecomp-ui/src/sdc-app/onboarding/licenseModel/overview/LicenseModelOverviewView.jsx
index d6c79dd..15f6c2d 100644
--- a/openecomp-ui/src/sdc-app/onboarding/licenseModel/overview/LicenseModelOverviewView.jsx
+++ b/openecomp-ui/src/sdc-app/onboarding/licenseModel/overview/LicenseModelOverviewView.jsx
@@ -52,7 +52,7 @@
 		licenseModelId: React.PropTypes.string,
 		licensingDataList: React.PropTypes.array,
 		modalHeader: React.PropTypes.string,
-		selectedTab: React.PropTypes.symbol,
+		selectedTab: React.PropTypes.string,
 		onTabSelect: React.PropTypes.func,
 		onCallVCAction: React.PropTypes.func,
 		onClose: React.PropTypes.func
@@ -67,14 +67,13 @@
 				<SummaryView/>
 				<div className={classNames('overview-list-section ', !selectedInUse ? 'overview-list-orphans' : '' )}>
 					<div className='vlm-list-tab-panel'>
-						<div className='section-title'>{selectedInUse ? i18n('VLM List View') : i18n('Entities not in Use')}</div>
-						<ListButtons onTabSelect={onTabSelect} selectedInUse={selectedInUse}/>
+						<ListButtons onTabSelect={onTabSelect} selectedTab={selectedTab}/>
 					</div>
 					<VLMListView licensingDataList={licensingDataList} showInUse={selectedInUse}/>
 				</div>
 				{
 					isDisplayModal &&
-					<Modal show={isDisplayModal} bsSize='large' animation={true} className={classNames('onborading-modal', setModalClassName(modalHeader))}>
+					<Modal show={isDisplayModal} bsSize='large' animation={true} className={classNames('onborading-modal license-model-modal', setModalClassName(modalHeader))}>
 						<Modal.Header>
 							<Modal.Title>{`${i18n('Create New ')}${i18n(modalHeader)}`}</Modal.Title>
 						</Modal.Header>
diff --git a/openecomp-ui/src/sdc-app/onboarding/licenseModel/overview/VLMListView.jsx b/openecomp-ui/src/sdc-app/onboarding/licenseModel/overview/VLMListView.jsx
index 119008a..ec05e37 100644
--- a/openecomp-ui/src/sdc-app/onboarding/licenseModel/overview/VLMListView.jsx
+++ b/openecomp-ui/src/sdc-app/onboarding/licenseModel/overview/VLMListView.jsx
@@ -66,7 +66,8 @@
 				<LicenseAgreement
 					laData={licenseAgreement}
 					isCollapsed={this.state[licenseAgreement.id]}
-					onClick={event => this.updateCollapsable(event, licenseAgreement.id) }/>
+					onClick={event => this.updateCollapsable(event, licenseAgreement.id) }
+					isOrphan={!this.props.showInUse}/>
 				<Collapse in={this.state[licenseAgreement.id]}>
 					<ul>
 						{licenseAgreement.children && licenseAgreement.children.map(item => this.renderLicensingItem(item))}
@@ -83,7 +84,8 @@
 				<FeatureGroup
 					fgData={featureGroup}
 					isCollapsed={this.state[featureGroup.id]}
-					onClick={event=> this.updateCollapsable(event, featureGroup.id) }/>
+					onClick={event=> this.updateCollapsable(event, featureGroup.id) }
+					isOrphan={!this.props.showInUse}/>
 				{
 					showInUse && <Collapse in={this.state[featureGroup.id]}>
 					<ul>
@@ -99,7 +101,7 @@
 	renderEntitlementPoolItem(entitlementPool) {
 		return (
 			<li key={entitlementPool.id}>
-				<EntitlementPool epData={entitlementPool}  />
+				<EntitlementPool epData={entitlementPool} isOrphan={!this.props.showInUse}/>
 			</li>
 		);
 	}
@@ -107,7 +109,7 @@
 	renderLicenseKeyGroupItem(licenseKeyGroup) {
 		return (
 			<li key={licenseKeyGroup.id}>
-				<LicenseKeyGroup lkgData={licenseKeyGroup}  />
+				<LicenseKeyGroup lkgData={licenseKeyGroup} isOrphan={!this.props.showInUse}/>
 			</li>
 		);
 	}
diff --git a/openecomp-ui/src/sdc-app/onboarding/licenseModel/overview/listItems/EntitlementPool.jsx b/openecomp-ui/src/sdc-app/onboarding/licenseModel/overview/listItems/EntitlementPool.jsx
index 94977b4..34d2ee6 100644
--- a/openecomp-ui/src/sdc-app/onboarding/licenseModel/overview/listItems/EntitlementPool.jsx
+++ b/openecomp-ui/src/sdc-app/onboarding/licenseModel/overview/listItems/EntitlementPool.jsx
@@ -15,7 +15,7 @@
  */
 import React, {Component} from 'react';
 import i18n from 'nfvo-utils/i18n/i18n.js';
-import {extractValue, extractUnits} from '../../entitlementPools/EntitlementPoolsConstants.js';
+import {extractUnits} from '../../entitlementPools/EntitlementPoolsConstants.js';
 import ArrowCol from './listItemsComponents/ArrowCol.jsx';
 import ItemInfo from './listItemsComponents/ItemInfo.jsx';
 import IconCol from './listItemsComponents/IconCol.jsx';
@@ -23,31 +23,23 @@
 
 class EntitlementPool extends Component {
 	render() {
-		let {epData: {name, description, manufacturerReferenceNumber}} = this.props;
+		let {epData: {name, description, thresholdValue, thresholdUnits}, isOrphan} = this.props;
 		return (
-			<div className='vlm-list-item vlm-list-item-ep' data-test-id='vlm-list-item-ep'>
-				<ArrowCol/>
-				<IconCol className='ep-icon'/>
+			<div className={`vlm-list-item vlm-list-item-ep ${isOrphan ? 'orphan-list-item' : ''}`} data-test-id='vlm-list-item-ep'>
+				{!isOrphan && <ArrowCol/>}
+				<IconCol className='ep-icon' text='EP'/>
 				<ItemInfo name={name} description={description}/>
 				<AdditionalDataCol>
-					<AdditionalDataElement
+					{thresholdValue && <AdditionalDataElement
 						className='vlm-list-item-entitlement-metric'
 						name={i18n('Entitlement')}
-						value={this.getEntitlement()}/>
-					<AdditionalDataElement
-						name={i18n('Manufacturer Reference Number')}
-						value={manufacturerReferenceNumber}
-						className='vlm-list-item-sku'/>
+						value={`${thresholdValue} ${extractUnits(thresholdUnits)}`}/>
+					}
 				</AdditionalDataCol>
 			</div>
 		);
 	}
 
-	getEntitlement() {
-		let {epData: {entitlementMetric, aggregationFunction, time, thresholdValue, thresholdUnits}} = this.props;
-		return `${extractValue(aggregationFunction)} ${extractValue(entitlementMetric)} per  ${extractValue(time)} ${thresholdValue} ${extractUnits(thresholdUnits)}`;
-	}
-
 }
 
 export default EntitlementPool;
diff --git a/openecomp-ui/src/sdc-app/onboarding/licenseModel/overview/listItems/FeatureGroup.jsx b/openecomp-ui/src/sdc-app/onboarding/licenseModel/overview/listItems/FeatureGroup.jsx
index 8dbd46a..6d97dea 100644
--- a/openecomp-ui/src/sdc-app/onboarding/licenseModel/overview/listItems/FeatureGroup.jsx
+++ b/openecomp-ui/src/sdc-app/onboarding/licenseModel/overview/listItems/FeatureGroup.jsx
@@ -18,30 +18,41 @@
 import ArrowCol from './listItemsComponents/ArrowCol.jsx';
 import ItemInfo from './listItemsComponents/ItemInfo.jsx';
 import IconCol from './listItemsComponents/IconCol.jsx';
+import i18n from 'nfvo-utils/i18n/i18n.js';
+import {AdditionalDataCol, AdditionalDataElement} from './listItemsComponents/AdditionalDataCol.jsx';
 
 class FeatureGroup extends Component {
 	render() {
-		let {fgData: {name, description, children = []}, isCollapsed, onClick} = this.props;
+		let {fgData: {name, manufacturerReferenceNumber, description, children = []}, isCollapsed, onClick, isOrphan} = this.props;
 		return (
-			<div onClick={e => onClick(e)} className='vlm-list-item vlm-list-item-fg' data-test-id='vlm-list-item-fg'>
-				<ArrowCol isCollapsed={isCollapsed} length={children.length} />
-				<IconCol className='fg-icon'/>
+			<div 
+				onClick={e => onClick(e)} 
+				className={`vlm-list-item vlm-list-item-fg ${isOrphan ? 'orphan-list-item' : ''} ${children.length && !isOrphan ? 'clickable' : ''}`} data-test-id='vlm-list-item-fg'>
+				{!isOrphan && <ArrowCol isCollapsed={isCollapsed} length={children.length} />}
+				<IconCol className='fg-icon' text='FG'/>
 				<ItemInfo name={name} description={description}>
 					<div className='children-count'>
 						<span className='count-value'>
-							Entitlement Pools:
+							{i18n('Entitlement Pools: ')}
 							<span data-test-id='vlm-list-ep-count-value'>
 								{`${children.filter(child => child.itemType === overviewEditorHeaders.ENTITLEMENT_POOL).length}`}
 							</span>
 						</span>
+						<span className='fg-pipeline-separator'>|</span>
 						<span className='count-value'>
-								License Key Groups:
+								{i18n('License Key Groups: ')}
 								<span data-test-id='vlm-list-lkg-count-value'>
 									{`${children.filter(child => child.itemType === overviewEditorHeaders.LICENSE_KEY_GROUP).length}`}
 								</span>
 						</span>
 					</div>
 				</ItemInfo>
+				<AdditionalDataCol>
+					<AdditionalDataElement
+						name={i18n('Manufacturer Reference Number')}
+						value={manufacturerReferenceNumber}
+						className='vlm-list-item-sku'/>
+				</AdditionalDataCol>
 			</div>
 		);
 	}
diff --git a/openecomp-ui/src/sdc-app/onboarding/licenseModel/overview/listItems/LicenseAgreement.jsx b/openecomp-ui/src/sdc-app/onboarding/licenseModel/overview/listItems/LicenseAgreement.jsx
index dd4686d..dfbbe20 100644
--- a/openecomp-ui/src/sdc-app/onboarding/licenseModel/overview/listItems/LicenseAgreement.jsx
+++ b/openecomp-ui/src/sdc-app/onboarding/licenseModel/overview/listItems/LicenseAgreement.jsx
@@ -15,7 +15,7 @@
  */
 import React, {Component} from 'react';
 import i18n from 'nfvo-utils/i18n/i18n.js';
-import InputOptions, {other as optionInputOther} from 'nfvo-components/input/inputOptions/InputOptions.jsx';
+import InputOptions, {other as optionInputOther} from 'nfvo-components/input/validation/InputOptions.jsx';
 import {optionsInputValues} from '../../licenseAgreement/LicenseAgreementConstants.js';
 import ArrowCol from './listItemsComponents/ArrowCol.jsx';
 import ItemInfo from './listItemsComponents/ItemInfo.jsx';
@@ -24,14 +24,17 @@
 
 class LicenseAgreement extends Component {
 	render() {
-		let {laData: {name, description, licenseTerm, children = []}, isCollapsed, onClick} = this.props;
+		let {laData: {name, description, licenseTerm, children = []}, isCollapsed, onClick, isOrphan} = this.props;
 		return (
-			<div onClick={e => onClick(e)} className='vlm-list-item vlm-list-item-la' data-test-id='vlm-list-la-item'>
-				<ArrowCol isCollapsed={isCollapsed} length={children.length} />
-				<IconCol className='la-icon'/>
+			<div 
+				onClick={e => onClick(e)} 
+				className={`vlm-list-item vlm-list-item-la ${isOrphan ? 'orphan-list-item' : ''} ${children.length && !isOrphan ? 'clickable' : ''} `} 
+				data-test-id='vlm-list-la-item'>
+				{!isOrphan && <ArrowCol isCollapsed={isCollapsed} length={children.length} />}
+				<IconCol className='la-icon' text='LA'/>
 				<ItemInfo name={name} description={description}>
 					<div className='children-count'>
-						<span className='count-value'>Feature Groups: <span data-test-id='vlm-list-fg-count-value'>{`${children.length}`}</span></span>
+						<span className='count-value'>{i18n('Feature Groups: ')}<span data-test-id='vlm-list-fg-count-value'>{`${children.length}`}</span></span>
 					</div>
 				</ItemInfo>
 				<AdditionalDataCol>
diff --git a/openecomp-ui/src/sdc-app/onboarding/licenseModel/overview/listItems/LicenseKeyGroup.jsx b/openecomp-ui/src/sdc-app/onboarding/licenseModel/overview/listItems/LicenseKeyGroup.jsx
index 9722b83..b1036aa 100644
--- a/openecomp-ui/src/sdc-app/onboarding/licenseModel/overview/listItems/LicenseKeyGroup.jsx
+++ b/openecomp-ui/src/sdc-app/onboarding/licenseModel/overview/listItems/LicenseKeyGroup.jsx
@@ -23,17 +23,17 @@
 
 class LicenseKeyGroup extends Component {
 	render() {
-		let {lkgData: {name, description, operationalScope, type}} = this.props;
+		let {lkgData: {name, description, operationalScope, type}, isOrphan} = this.props;
 		return (
-			<div className='vlm-list-item vlm-list-item-lkg' data-test-id='vlm-list-item-lkg'>
-				<ArrowCol/>
-				<IconCol className='lkg-icon'/>
+			<div className={`vlm-list-item vlm-list-item-lkg ${isOrphan ? 'orphan-list-item' : ''}`} data-test-id='vlm-list-item-lkg'>
+				{!isOrphan && <ArrowCol/>}
+				<IconCol className='lkg-icon' text='LKG'/>
 				<ItemInfo name={name} description={description}/>
 				<AdditionalDataCol>
-					<AdditionalDataElement
+					{operationalScope && operationalScope.choices && <AdditionalDataElement
 						className='vlm-list-item-operational-scope'
 						name={i18n('Operational Scope')}
-						value={operationalScope && getOperationalScopes(operationalScope)}/>
+						value={getOperationalScopes(operationalScope)}/>}
 					<AdditionalDataElement
 						className='vlm-list-item-group-type'
 						name={i18n('Type')}
diff --git a/openecomp-ui/src/sdc-app/onboarding/licenseModel/overview/listItems/listItemsComponents/IconCol.jsx b/openecomp-ui/src/sdc-app/onboarding/licenseModel/overview/listItems/listItemsComponents/IconCol.jsx
index 7fd7fcb..826248e 100644
--- a/openecomp-ui/src/sdc-app/onboarding/licenseModel/overview/listItems/listItemsComponents/IconCol.jsx
+++ b/openecomp-ui/src/sdc-app/onboarding/licenseModel/overview/listItems/listItemsComponents/IconCol.jsx
@@ -15,10 +15,10 @@
  */
 import React from 'react';
 
-function IconCol({className}) {
+function IconCol({className, text}) {
 	return (
 		<div className='list-item-section list-item-icon-col'>
-			<div className={className}></div>
+			<div className={`overview-list-icon ${className ? className : ''}`}>{text}</div>
 		</div>
 	);
 }
diff --git a/openecomp-ui/src/sdc-app/onboarding/licenseModel/overview/summary/ListButtons.jsx b/openecomp-ui/src/sdc-app/onboarding/licenseModel/overview/summary/ListButtons.jsx
index 730ccb3..3d81aa5 100644
--- a/openecomp-ui/src/sdc-app/onboarding/licenseModel/overview/summary/ListButtons.jsx
+++ b/openecomp-ui/src/sdc-app/onboarding/licenseModel/overview/summary/ListButtons.jsx
@@ -15,19 +15,26 @@
  */
 import React from 'react';
 import {selectedButton} from '../LicenseModelOverviewConstants.js';
+import Tabs from 'sdc-ui/lib/react/Tabs.js';
+import Tab from 'sdc-ui/lib/react/Tab.js';
+import i18n from 'nfvo-utils/i18n/i18n.js';
 
-function ListButtons ({onTabSelect, selectedInUse}) {
+function ListButtons ({onTabSelect, selectedTab}) {
 	return (
-		<div className='overview-buttons-section'>
-			<div onClick={()=>onTabSelect(selectedButton.VLM_LIST_VIEW)}
-				className={selectedInUse ? 'button-vlm-list-view  vlm-list-icon selected' : 'button-vlm-list-view   vlm-list-icon' }
-				data-test-id='vlm-overview-vlmlist-tab'></div>
-			<div onClick={()=>onTabSelect(selectedButton.NOT_IN_USE)}
-				className={selectedInUse ? 'button-vlm-list-view entities-list-icon' : 'button-vlm-list-view  entities-list-icon selected'  }
-				data-test-id='vlm-overview-orphans-tab' >
-			</div>
-
-		</div>
+		<Tabs 
+			onTabClick={(tabId) => onTabSelect(tabId)}
+			activeTab={selectedTab} 
+			className='overview-buttons-section' 
+			type='header' >
+			<Tab 
+				tabId={selectedButton.VLM_LIST_VIEW}
+				title={i18n('Connections List')}
+				data-test-id='vlm-overview-vlmlist-tab' />
+			<Tab 
+				tabId={selectedButton.NOT_IN_USE}
+				title={i18n('Orphans List')}
+				data-test-id='vlm-overview-orphans-tab' />
+		</Tabs>
 	);
 }
 
diff --git a/openecomp-ui/src/sdc-app/onboarding/licenseModel/overview/summary/VendorDataView.js b/openecomp-ui/src/sdc-app/onboarding/licenseModel/overview/summary/VendorDataView.js
index 1d65ab9..8755990 100644
--- a/openecomp-ui/src/sdc-app/onboarding/licenseModel/overview/summary/VendorDataView.js
+++ b/openecomp-ui/src/sdc-app/onboarding/licenseModel/overview/summary/VendorDataView.js
@@ -13,9 +13,11 @@
  * or implied. See the License for the specific language governing
  * permissions and limitations under the License.
  */
-import React from 'react';
+import React, {Component} from 'react';
 import {connect} from 'react-redux';
 
+import Tooltip from 'react-bootstrap/lib/Tooltip.js';
+import OverlayTrigger from 'react-bootstrap/lib/OverlayTrigger.js';
 import ValidationHelper from 'sdc-app/common/helpers/ValidationHelper.js';
 import licenseModelOverviewActionHelper from '../licenseModelOverviewActionHelper.js';
 import LicenseModelActionHelper from '../../LicenseModelActionHelper.js';
@@ -46,9 +48,7 @@
 	};
 };
 
-
-
-export class VendorDataView extends React.Component {
+export class VendorDataView extends Component {
 	render() {
 		let {data: {vendorName}, description, isReadOnlyMode} = this.props;
 		return (
@@ -62,13 +62,16 @@
 		);
 	}
 
+
 	renderDescription() {
 		let {data: {description}, onVendorDescriptionEdit, isReadOnlyMode} = this.props;
 		return (
-			<div onClick={() => {if (!isReadOnlyMode) {onVendorDescriptionEdit(description);}}}  className={!isReadOnlyMode ? 'vendor-description' : 'vendor-description-readonly'}>
-				<div className='description-data' data-test-id='vlm-summary-vendor-description'>
-					{description}
-				</div>
+			<div onClick={() => {if (!isReadOnlyMode) {onVendorDescriptionEdit(description);}}} className={!isReadOnlyMode ? 'vendor-description' : 'vendor-description-readonly'}>
+				{this.renderOverlay(
+					<div className='description-data' data-test-id='vlm-summary-vendor-description'>
+						{description}
+					</div>
+				)}
 			</div>
 		);
 	}
@@ -80,7 +83,21 @@
 		);
 	}
 
+	renderOverlay(children) {
+		let {data: {description}, isReadOnlyMode} = this.props;
+		if (isReadOnlyMode) {
+			return (
+				<OverlayTrigger
+					placement='bottom'
+					overlay={<Tooltip className='vendor-description-tooltip' id='tooltip-bottom'>{description}</Tooltip>}
+					delayShow={400}>
+					{children}
+				</OverlayTrigger>
+			);
+		}
+		return children;
+	}
+
 }
 
 export default connect(mapStateToProps, mapActionsToProps)(VendorDataView);
-
diff --git a/openecomp-ui/src/sdc-app/onboarding/onboard/CatalogItemDetails.jsx b/openecomp-ui/src/sdc-app/onboarding/onboard/CatalogItemDetails.jsx
index 3b3e2fc..5939499 100644
--- a/openecomp-ui/src/sdc-app/onboarding/onboard/CatalogItemDetails.jsx
+++ b/openecomp-ui/src/sdc-app/onboarding/onboard/CatalogItemDetails.jsx
@@ -49,7 +49,7 @@
 };
 
 const CatalogTileItemName = ({name}) => (
-	<OverlayTrigger placement='top' overlay={tooltip(name && name.toUpperCase())}>
+	<OverlayTrigger placement='top' overlay={tooltip(name)}>
 		<div className='catalog-tile-item-name'>{name}</div>
 	</OverlayTrigger>
 );
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/SoftwareProduct.js b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/SoftwareProduct.js
index 07d6c74..c9c95f3 100644
--- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/SoftwareProduct.js
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/SoftwareProduct.js
@@ -36,7 +36,7 @@
 	return activeItemId;
 }
 
-const buildComponentNavigationBarGroups = ({componentId, meta, hasImages}) => {
+const buildComponentNavigationBarGroups = ({componentId, meta}) => {
 	const groups = ([
 		{
 			id: navigationItems.GENERAL + '|' + componentId,
@@ -67,7 +67,6 @@
 			id: navigationItems.IMAGES + '|' + componentId,
 			name: i18n('Images'),
 			disabled: false,
-			hidden: (!hasImages),
 			meta
 		}, {
 			id: navigationItems.PROCESS_DETAILS + '|' + componentId,
@@ -85,7 +84,7 @@
 	return groups;
 };
 
-const buildNavigationBarProps = ({softwareProduct, meta, screen, componentId, componentsList, mapOfExpandedIds, imagesNavigationList}) => {
+const buildNavigationBarProps = ({softwareProduct, meta, screen, componentId, componentsList, mapOfExpandedIds}) => {
 	const {softwareProductEditor: {data: currentSoftwareProduct = {}}} = softwareProduct;
 	const {id, name, onboardingMethod} = currentSoftwareProduct;
 	const groups = [{
@@ -148,8 +147,7 @@
 						name: displayName,
 						meta,
 						expanded: mapOfExpandedIds[navigationItems.COMPONENTS + '|' + id] === true  && screen !== enums.SCREEN.SOFTWARE_PRODUCT_LANDING_PAGE,
-						items: buildComponentNavigationBarGroups({componentId: id, meta,
-							hasImages : (onboardingMethod === onboardingMethodTypes.MANUAL || imagesNavigationList[id] === true)})
+						items: buildComponentNavigationBarGroups({componentId: id, meta})
 					}))
 				]
 			}
@@ -193,12 +191,12 @@
 const mapStateToProps = ({softwareProduct}, {currentScreen: {screen, props: {componentId}}}) => {
 	const {softwareProductEditor, softwareProductComponents, softwareProductDependencies} = softwareProduct;
 	const {mapOfExpandedIds = []} = softwareProductEditor;
-	const {componentsList = [], images: {imagesNavigationList}} = softwareProductComponents;
+	const {componentsList = []} = softwareProductComponents;
 
 	const meta = buildMeta({softwareProduct, componentId, softwareProductDependencies});
 	return {
 		versionControllerProps: buildVersionControllerProps(softwareProduct),
-		navigationBarProps: buildNavigationBarProps({softwareProduct, meta, screen, componentId, componentsList, mapOfExpandedIds, imagesNavigationList}),
+		navigationBarProps: buildNavigationBarProps({softwareProduct, meta, screen, componentId, componentsList, mapOfExpandedIds}),
 		meta
 	};
 };
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/SoftwareProductActionHelper.js b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/SoftwareProductActionHelper.js
index d6ba86a..90a2bb8 100644
--- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/SoftwareProductActionHelper.js
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/SoftwareProductActionHelper.js
@@ -251,8 +251,7 @@
 	processAndValidateHeatCandidate(dispatch, {softwareProductId, version}){
 		return validateHeatCandidate(softwareProductId, version).then(response => {
 			if (response.status === 'Success') {
-				let isFetchImageDetails = true;
-				SoftwareProductComponentsActionHelper.fetchSoftwareProductComponents(dispatch, {softwareProductId, version, isFetchImageDetails});
+				SoftwareProductComponentsActionHelper.fetchSoftwareProductComponents(dispatch, {softwareProductId, version});
 				SoftwareProductActionHelper.fetchSoftwareProduct(dispatch, {softwareProductId, version});
 			}
 		});
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/SoftwareProductReducer.js b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/SoftwareProductReducer.js
index 5248c4e..977a76a 100644
--- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/SoftwareProductReducer.js
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/SoftwareProductReducer.js
@@ -35,7 +35,6 @@
 import SoftwareProductComponentsNICEditorReducer from './components/network/SoftwareProductComponentsNICEditorReducer.js';
 import SoftwareProductComponentsImageListReducer from './components/images/SoftwareProductComponentsImageListReducer.js';
 import SoftwareProductComponentsImageEditorReducer from './components/images/SoftwareProductComponentsImageEditorReducer.js';
-import SoftwareProductComponentsImageNavigationReducer from './components/images/SoftwareProductComponentsImageNavigationReducer.js';
 import SoftwareProductComponentsNICCreationReducer from './components/network/NICCreation/NICCreationReducer.js';
 import SoftwareProductComponentsMonitoringReducer from './components/monitoring/SoftwareProductComponentsMonitoringReducer.js';
 import SoftwareProductComponentsComputeFlavorListReducer from './components/compute/computeComponents/computeFlavor/ComputeFlavorListReducer.js';
@@ -83,7 +82,6 @@
 		}),
 		images: combineReducers({
 			imagesList: SoftwareProductComponentsImageListReducer,
-			imagesNavigationList: SoftwareProductComponentsImageNavigationReducer,
 			imageEditor: createPlainDataReducer(createComposedJSONSchemaReducer(IMAGE_QUESTIONNAIRE, SoftwareProductComponentsImageEditorReducer))
 		}),
 		computeFlavor: combineReducers({
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/attachments/setup/HeatSetupActionHelper.js b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/attachments/setup/HeatSetupActionHelper.js
index 5314364..87953bb 100644
--- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/attachments/setup/HeatSetupActionHelper.js
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/attachments/setup/HeatSetupActionHelper.js
@@ -17,8 +17,8 @@
 import isEqual from 'lodash/isEqual.js';
 import cloneDeep from 'lodash/cloneDeep.js';
 import SoftwareProductActionHelper from 'sdc-app/onboarding/softwareProduct/SoftwareProductActionHelper.js';
-import i18n from 'nfvo-utils/i18n/i18n.js';
-import {actionTypes as modalActionTypes} from 'nfvo-components/modal/GlobalModalConstants.js';
+// import i18n from 'nfvo-utils/i18n/i18n.js';
+// import {actionTypes as modalActionTypes} from 'nfvo-components/modal/GlobalModalConstants.js';
 
 export default {
 
@@ -56,7 +56,11 @@
 		dispatch({type: actionTypes.ADD_ALL_UNASSIGNED_TO_ARTIFACTS});
 	},
 
-	heatSetupLeaveConfirmation(dispatch, {softwareProductId, heatSetup, heatSetupCache}) {
+	heatSetupLeaveConfirmation() {
+		return Promise.resolve();
+	}
+
+	/*heatSetupLeaveConfirmation(dispatch, {softwareProductId, heatSetup, heatSetupCache}) {
 		return new Promise((resolve, reject) => {
 			if (isEqual({...heatSetup, softwareProductId}, heatSetupCache)) {
 				resolve();
@@ -73,5 +77,5 @@
 				});
 			}
 		});
-	}
+	}*/
 };
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/SoftwareProductComponentsActionHelper.js b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/SoftwareProductComponentsActionHelper.js
index 71dc832..8085c87 100644
--- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/SoftwareProductComponentsActionHelper.js
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/SoftwareProductComponentsActionHelper.js
@@ -18,7 +18,6 @@
 
 import {actionTypes, COMPONENTS_QUESTIONNAIRE} from './SoftwareProductComponentsConstants.js';
 import ValidationHelper from 'sdc-app/common/helpers/ValidationHelper.js';
-import SoftwareProductComponentsImageActionHelper from './images/SoftwareProductComponentsImageActionHelper.js';
 import {actionTypes as modalActionTypes} from 'nfvo-components/modal/GlobalModalConstants.js';
 
 function baseUrl(softwareProductId, version) {
@@ -69,32 +68,12 @@
 
 
 const SoftwareProductComponentsActionHelper = {
-	fetchSoftwareProductComponents(dispatch, {softwareProductId, version, isFetchImageDetails = false}) {
+	fetchSoftwareProductComponents(dispatch, {softwareProductId, version}) {
 		return fetchSoftwareProductComponents(softwareProductId, version).then(response => {
-			let componentImagesCalls = [];
-			if (isFetchImageDetails && response.listCount) {
-				response.results.map(component => {
-					let componentId = component.id;
-					componentImagesCalls[componentImagesCalls.length] =
-						SoftwareProductComponentsImageActionHelper.fetchImagesList(dispatch, {
-							softwareProductId,
-							componentId,
-							version
-						});
-
-				});
-				return Promise.all(componentImagesCalls).then(() => {
-					dispatch({
-						type: actionTypes.COMPONENTS_LIST_UPDATE,
-						componentsList: response.results
-					});
-				});
-			} else {
-				dispatch({
-					type: actionTypes.COMPONENTS_LIST_UPDATE,
-					componentsList: response.results
-				});
-			}
+			dispatch({
+				type: actionTypes.COMPONENTS_LIST_UPDATE,
+				componentsList: response.results
+			});
 		});
 	},
 
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/images/SoftwareProductComponentsImageList.js b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/images/SoftwareProductComponentsImageList.js
index 86c4e07..fb3bd35 100644
--- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/images/SoftwareProductComponentsImageList.js
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/images/SoftwareProductComponentsImageList.js
@@ -77,9 +77,10 @@
 				image, isReadOnlyMode, softwareProductId, componentId, version, modalClassName: 'image-modal-edit'}
 			);
 		},
-		onSubmit: ({qdata}) => { return SoftwareProductComponentsActionHelper.updateSoftwareProductComponentQuestionnaire(dispatch,
+		onSubmit: (version, qdata) => { return SoftwareProductComponentsActionHelper.updateSoftwareProductComponentQuestionnaire(dispatch,
 			{softwareProductId,
 				vspComponentId: componentId,
+				version,
 				qdata});
 		}
 	};
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/images/SoftwareProductComponentsImageListView.jsx b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/images/SoftwareProductComponentsImageListView.jsx
index ccf5b9d..54def08 100644
--- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/images/SoftwareProductComponentsImageListView.jsx
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/images/SoftwareProductComponentsImageListView.jsx
@@ -125,8 +125,8 @@
 	}
 
 	save() {
-		let {onSubmit, qdata} = this.props;
-		return onSubmit({qdata});
+		let {onSubmit, qdata, version} = this.props;
+		return onSubmit(version, qdata);
 	}
 }
 export default SoftwareProductComponentsImageListView;
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/monitoring/SoftwareProductComponentsMonitoringView.jsx b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/monitoring/SoftwareProductComponentsMonitoringView.jsx
index 2ad48ec..36c1728 100644
--- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/monitoring/SoftwareProductComponentsMonitoringView.jsx
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/monitoring/SoftwareProductComponentsMonitoringView.jsx
@@ -96,7 +96,7 @@
 			<ButtonToolbar>
 				<ButtonGroup>
 					<Button disabled>{filename}</Button>
-					<Button className='delete-button' onClick={()=>this.props.onDeleteFile(type)}>X</Button>
+					<Button data-test-id={`monitoring-delete-${type}`} className='delete-button' onClick={()=>this.props.onDeleteFile(type)}>X</Button>
 				</ButtonGroup>
 			</ButtonToolbar>
 		);
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/network/SoftwareProductComponentsNetworkListView.jsx b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/network/SoftwareProductComponentsNetworkListView.jsx
index 5a159b4..4d460c7 100644
--- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/network/SoftwareProductComponentsNetworkListView.jsx
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/network/SoftwareProductComponentsNetworkListView.jsx
@@ -122,7 +122,7 @@
 				<ListEditorItemViewField>
 					<div className={isManual ? 'details-col' : 'details'}>
 						<div className={isManual ? 'manual-title' : 'title'}>{i18n('Purpose of NIC')}</div>
-						<div className={isManual ? 'description' : ''}>{description ? description : i18n('N/A')}</div>
+						{description && <div className={isManual ? 'description' : ''}>{description}</div>}
 					</div>
 					{!isManual && <div className='details'>
 						<div className='title'>{i18n('Network')}</div>
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/storage/SoftwareProductComponentStorage.js b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/storage/SoftwareProductComponentStorage.js
index 18a3b1e..7149adb 100644
--- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/storage/SoftwareProductComponentStorage.js
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/storage/SoftwareProductComponentStorage.js
@@ -33,14 +33,15 @@
 		qdata,
 		isReadOnlyMode,
 		qGenericFieldInfo,
-		dataMap
+		dataMap,
+		version: currentVSP.version
 	};
 };
 
-const mapActionToProps = (dispatch, {softwareProductId, version, componentId}) => {
+const mapActionToProps = (dispatch, {softwareProductId, componentId}) => {
 	return {
 		onQDataChanged: (deltaData) => ValidationHelper.qDataChanged(dispatch, {deltaData, qName: COMPONENTS_QUESTIONNAIRE}),
-		onSubmit: ({componentData, qdata}) => { return SoftwareProductComponentsActionHelper.updateSoftwareProductComponent(dispatch,
+		onSubmit: ({componentData, qdata, version}) => { return SoftwareProductComponentsActionHelper.updateSoftwareProductComponent(dispatch,
 			{softwareProductId, version, vspComponentId: componentId, componentData, qdata});
 		}
 	};
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/storage/SoftwareProductComponentStorageView.jsx b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/storage/SoftwareProductComponentStorageView.jsx
index 28bdf8e..00df21b 100644
--- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/storage/SoftwareProductComponentStorageView.jsx
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/components/storage/SoftwareProductComponentStorageView.jsx
@@ -162,7 +162,7 @@
 	};
 
 	render() {
-		let {onQDataChanged, dataMap, qGenericFieldInfo, isReadOnlyMode, onSubmit, qdata} =  this.props;
+		let {onQDataChanged, dataMap, qGenericFieldInfo, isReadOnlyMode, onSubmit, qdata, version} =  this.props;
 
 		return(
 			<div className='vsp-component-questionnaire-view'>
@@ -170,7 +170,7 @@
 					ref={form => this.form = form }
 					isValid={true}
 					formReady={null}
-					onSubmit={() => onSubmit({qdata})}
+					onSubmit={() => onSubmit({qdata, version})}
 					className='component-questionnaire-validation-form'
 					isReadOnlyMode={isReadOnlyMode}
 					hasButtons={false}>
@@ -182,8 +182,9 @@
 		);
 	}
 
-	save(){
-		return this.form.handleFormSubmit(new Event('dummy'));
+	save(){		
+		const {componentData, qdata, onSubmit, version} = this.props;
+		return onSubmit({componentData, qdata, version});		
 	}
 }
 
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/creation/SoftwareProductCreation.js b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/creation/SoftwareProductCreation.js
index 19e2d5b..3b973c6 100644
--- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/creation/SoftwareProductCreation.js
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/creation/SoftwareProductCreation.js
@@ -27,7 +27,7 @@
 
 	let VSPNames = {};
 	for (let i = 0; i < softwareProductList.length; i++) {
-		VSPNames[softwareProductList[i].name] = softwareProductList[i].id;
+		VSPNames[softwareProductList[i].name.toLowerCase()] = softwareProductList[i].id;
 	}
 
 	return {
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/dependencies/SoftwareProductDependenciesView.jsx b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/dependencies/SoftwareProductDependenciesView.jsx
index 2e0cd34..a427470 100644
--- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/dependencies/SoftwareProductDependenciesView.jsx
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/dependencies/SoftwareProductDependenciesView.jsx
@@ -63,14 +63,15 @@
 					numOfIcons={2}
 					isReadOnlyMode={isReadOnlyMode}
 					onAdd={canAdd ? onAddDependency : undefined}
-					onAddItem={i18n('Add Rule')}>					
+					onAddItem={i18n('Add Rule')}>
 					{softwareProductDependencies.map(dependency => (
 						<SelectActionTableRow
 							key={dependency.id}
 							onDelete={() => onDataChanged(softwareProductDependencies.filter(currentDependency => currentDependency.id !== dependency.id))}
 							overlayMsg={i18n('There is a loop between selections')}
 							hasError={dependency.hasCycle}
-							hasErrorIndication>
+							hasErrorIndication
+							showDelete={dependency.id !== 'fake' || dependency.hasCycle !== undefined}>
 							<SelectActionTableCell
 								options={this.filterSources({componentsOptions, sourceToTargetMapping, selectedSourceId: dependency.sourceId, selectedTargetId: dependency.targetId})}
 								selected={dependency.sourceId}
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/deployment/editor/SoftwareProductDeploymentEditor.js b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/deployment/editor/SoftwareProductDeploymentEditor.js
index 6b924a2..ba00d4e 100644
--- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/deployment/editor/SoftwareProductDeploymentEditor.js
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/deployment/editor/SoftwareProductDeploymentEditor.js
@@ -58,7 +58,7 @@
 	let DFNames = {};
 
 	deploymentFlavors.map(deployment => {
-		DFNames[deployment.model] = deployment.id;
+		DFNames[deployment.model.toLowerCase()] = deployment.id;
 	});
 
 	return {
diff --git a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/details/SoftwareProductDetailsView.jsx b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/details/SoftwareProductDetailsView.jsx
index 98dd773..e4caf92 100644
--- a/openecomp-ui/src/sdc-app/onboarding/softwareProduct/details/SoftwareProductDetailsView.jsx
+++ b/openecomp-ui/src/sdc-app/onboarding/softwareProduct/details/SoftwareProductDetailsView.jsx
@@ -19,7 +19,7 @@
 import sortByStringProperty from 'nfvo-utils/sortByStringProperty.js';
 import Form from 'nfvo-components/input/validation/Form.jsx';
 import Input from 'nfvo-components/input/validation/Input.jsx';
-import InputOptions from 'nfvo-components/input/inputOptions/InputOptions.jsx';
+import InputOptions from 'nfvo-components/input/validation/InputOptions.jsx';
 import GridSection from 'nfvo-components/grid/GridSection.jsx';
 import GridItem from 'nfvo-components/grid/GridItem.jsx';
 import SoftwareProductCategoriesHelper from 'sdc-app/onboarding/softwareProduct/SoftwareProductCategoriesHelper.js';
diff --git a/openecomp-ui/test-utils/factories/licenseModel/EntitlementPoolFactories.js b/openecomp-ui/test-utils/factories/licenseModel/EntitlementPoolFactories.js
index 14df58e..a28245e 100644
--- a/openecomp-ui/test-utils/factories/licenseModel/EntitlementPoolFactories.js
+++ b/openecomp-ui/test-utils/factories/licenseModel/EntitlementPoolFactories.js
@@ -19,9 +19,7 @@
 Factory.define('EntitlementPoolBaseFactory')
 	.attrs({
 		name: 'EntitlementPoolName',
-		description: 'description',
-		entitlementMetric: {'choice': 'User', 'other': ''},
-		manufacturerReferenceNumber: '123'
+		description: 'description'
 	});
 
 Factory.define('EntitlementPoolExtendedBaseFactory')
@@ -29,10 +27,10 @@
 	.attrs({
 		thresholdValue: 75,
 		thresholdUnits: '%',
-		increments: 'string',
-		aggregationFunction: {'choice': 'Average', 'other': ''},
-		operationalScope: {'choices': ['Other'], 'other': 'blabla'},
-		time: {'choice': 'Hour', 'other': ''}
+		increments: 'string',		
+		operationalScope: {'choices': ['Other'], 'other': 'blabla'},		
+		startDate: (new Date()).getTime(),
+		expiryDate: (new Date()).getTime()
 	});
 
 export const EntitlementPoolListItemFactory = new Factory()
diff --git a/openecomp-ui/test-utils/factories/licenseModel/LimitFactories.js b/openecomp-ui/test-utils/factories/licenseModel/LimitFactories.js
new file mode 100644
index 0000000..a08e7e6
--- /dev/null
+++ b/openecomp-ui/test-utils/factories/licenseModel/LimitFactories.js
@@ -0,0 +1,38 @@
+/*!
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the 'License');
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an 'AS IS' BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+import {Factory} from 'rosie';
+import {limitType} from 'sdc-app/onboarding/licenseModel/limits/LimitEditorConstants.js';
+import IdMixin from 'test-utils/factories/mixins/IdMixin.js';
+
+Factory.define('LimitBaseFactory')
+	.attrs({		
+		name: 'SpLimit1',
+		type: limitType.SERVICE_PROVIDER,
+		description: 'fgfg',
+		metric: 'CPU',
+		value: 45,
+		unit: 55,
+		aggregationFunction: 'Peak',
+		time: 'Day'		
+	});
+
+export const LimitPostFactory = new Factory()
+	.extend('LimitBaseFactory');
+
+export const LimitItemFactory = new Factory()
+	.extend('LimitBaseFactory')
+	.extend(IdMixin);	
diff --git a/openecomp-ui/test/licenseModel/entitlementPools/test.js b/openecomp-ui/test/licenseModel/entitlementPools/test.js
index 15e1dee..911fb01 100644
--- a/openecomp-ui/test/licenseModel/entitlementPools/test.js
+++ b/openecomp-ui/test/licenseModel/entitlementPools/test.js
@@ -20,6 +20,7 @@
 import EntitlementPoolsActionHelper from 'sdc-app/onboarding/licenseModel/entitlementPools/EntitlementPoolsActionHelper.js';
 import {EntitlementPoolStoreFactory, EntitlementPoolPostFactory} from 'test-utils/factories/licenseModel/EntitlementPoolFactories.js';
 import VersionControllerUtilsFactory from 'test-utils/factories/softwareProduct/VersionControllerUtilsFactory.js';
+import {LimitItemFactory, LimitPostFactory} from 'test-utils/factories/licenseModel/LimitFactories.js';
 
 describe('Entitlement Pools Module Tests', function () {
 
@@ -162,4 +163,173 @@
 		});
 	});
 
+	it('Load Limits List', () => {
+
+		const limitsList = LimitItemFactory.buildList(3);		
+		deepFreeze(limitsList);
+		const store = storeCreator();
+		deepFreeze(store.getState());
+
+		const expectedStore = cloneAndSet(store.getState(), 'licenseModel.entitlementPool.entitlementPoolEditor.limitsList', limitsList);
+		const entitlementPool = EntitlementPoolStoreFactory.build();
+		mockRest.addHandler('fetch', ({data, options, baseUrl}) => {
+			expect(baseUrl).toEqual(`/onboarding-api/v1.0/vendor-license-models/${LICENSE_MODEL_ID}/versions/${version.id}/entitlement-pools/${entitlementPool.id}/limits`);
+			expect(data).toEqual(undefined);
+			expect(options).toEqual(undefined);
+			return {results: limitsList};
+		 });
+
+		return EntitlementPoolsActionHelper.fetchLimits(store.dispatch, {licenseModelId: LICENSE_MODEL_ID, version, entitlementPool}).then(() => {
+			expect(store.getState()).toEqual(expectedStore);
+		 });
+	});
+
+	it('Add Limit', () => {
+
+		const store = storeCreator();
+		deepFreeze(store.getState());
+
+		const limitToAdd = LimitPostFactory.build();
+
+		deepFreeze(limitToAdd);
+
+		const LimitIdFromResponse = 'ADDED_ID';
+		const limitAddedItem = {...limitToAdd, id: LimitIdFromResponse};
+		deepFreeze(limitAddedItem);
+		const entitlementPool = EntitlementPoolStoreFactory.build();
+
+		const expectedStore = cloneAndSet(store.getState(), 'licenseModel.entitlementPool.entitlementPoolEditor.limitsList', [limitAddedItem]);
+
+		mockRest.addHandler('post', ({data, options, baseUrl}) => {
+			expect(baseUrl).toEqual(`/onboarding-api/v1.0/vendor-license-models/${LICENSE_MODEL_ID}/versions/${version.id}/entitlement-pools/${entitlementPool.id}/limits`);
+			expect(data).toEqual(limitToAdd);
+			expect(options).toEqual(undefined);
+			return {
+				returnCode: 'OK',
+				value: LimitIdFromResponse
+			};
+		});
+
+		mockRest.addHandler('fetch', ({data, options, baseUrl}) => {
+			expect(baseUrl).toEqual(`/onboarding-api/v1.0/vendor-license-models/${LICENSE_MODEL_ID}/versions/${version.id}/entitlement-pools/${entitlementPool.id}/limits`);
+			expect(data).toEqual(undefined);
+			expect(options).toEqual(undefined);
+			return {results: [limitAddedItem]};
+		 });
+
+		return EntitlementPoolsActionHelper.submitLimit(store.dispatch,
+			{
+				licenseModelId: LICENSE_MODEL_ID,
+				version,				
+				entitlementPool,
+				limit: limitToAdd
+			}
+		).then(() => {
+			expect(store.getState()).toEqual(expectedStore);
+		});
+	});
+
+
+	it('Delete Limit', () => {
+
+		const limitsList = LimitItemFactory.buildList(1);		
+		deepFreeze(limitsList);
+					
+		const store = storeCreator({
+			licenseModel: {
+				entitlementPool: {
+					entitlementPoolEditor: {
+						limitsList
+					}
+				}
+			}
+		});
+		deepFreeze(store.getState());
+
+		const entitlementPool = EntitlementPoolStoreFactory.build();
+		const expectedStore = cloneAndSet(store.getState(), 'licenseModel.entitlementPool.entitlementPoolEditor.limitsList', []);
+
+		mockRest.addHandler('destroy', ({data, options, baseUrl}) => {
+			expect(baseUrl).toEqual(`/onboarding-api/v1.0/vendor-license-models/${LICENSE_MODEL_ID}/versions/${version.id}/entitlement-pools/${entitlementPool.id}/limits/${limitsList[0].id}`);
+			expect(data).toEqual(undefined);
+			expect(options).toEqual(undefined);
+			return {
+				results: {
+					returnCode: 'OK'
+				}
+			};
+		});
+
+		mockRest.addHandler('fetch', ({data, options, baseUrl}) => {
+			expect(baseUrl).toEqual(`/onboarding-api/v1.0/vendor-license-models/${LICENSE_MODEL_ID}/versions/${version.id}/entitlement-pools/${entitlementPool.id}/limits`);
+			expect(data).toEqual(undefined);
+			expect(options).toEqual(undefined);
+			return {results: []};
+		 });
+
+		return EntitlementPoolsActionHelper.deleteLimit(store.dispatch, {
+			licenseModelId: LICENSE_MODEL_ID,
+			version,
+			entitlementPool,
+			limit: limitsList[0]
+		}).then(() => {
+			expect(store.getState()).toEqual(expectedStore);
+		});
+	});
+
+	it('Update Limit', () => {
+
+		const limitsList = LimitItemFactory.buildList(1);		
+		deepFreeze(limitsList);
+		const entitlementPool = EntitlementPoolStoreFactory.build();
+		const store = storeCreator({
+			licenseModel: {
+				entitlementPool: {
+					entitlementPoolEditor: {
+						limitsList
+					}
+				}
+			}
+		});
+
+		deepFreeze(store.getState());
+
+		
+		const previousData = limitsList[0];
+		deepFreeze(previousData);
+		const limitId = limitsList[0].id;
+		
+		const updatedLimit = {...previousData, name: 'updatedLimit'};
+		deepFreeze(updatedLimit);
+		const updatedLimitForPut = {...updatedLimit, id: undefined};
+
+		const expectedStore = cloneAndSet(store.getState(), 'licenseModel.entitlementPool.entitlementPoolEditor.limitsList', [updatedLimit]);
+
+
+		mockRest.addHandler('put', ({data, options, baseUrl}) => {
+			expect(baseUrl).toEqual(`/onboarding-api/v1.0/vendor-license-models/${LICENSE_MODEL_ID}/versions/${version.id}/entitlement-pools/${entitlementPool.id}/limits/${limitId}`);
+			expect(data).toEqual(updatedLimitForPut);
+			expect(options).toEqual(undefined);
+			return {returnCode: 'OK'};
+		});
+
+		mockRest.addHandler('fetch', ({data, options, baseUrl}) => {
+			expect(baseUrl).toEqual(`/onboarding-api/v1.0/vendor-license-models/${LICENSE_MODEL_ID}/versions/${version.id}/entitlement-pools/${entitlementPool.id}/limits`);
+			expect(data).toEqual(undefined);
+			expect(options).toEqual(undefined);
+			return {results: [updatedLimit]};
+		 });
+
+		return EntitlementPoolsActionHelper.submitLimit(store.dispatch,
+			{
+				licenseModelId: LICENSE_MODEL_ID,
+				version,				
+				entitlementPool,
+				limit: updatedLimit
+			}
+		).then(() => {
+			expect(store.getState()).toEqual(expectedStore);
+		});
+	});
+
 });
diff --git a/openecomp-ui/test/licenseModel/licenseKeyGroups/test.js b/openecomp-ui/test/licenseModel/licenseKeyGroups/test.js
index dd09030..77fcc00 100644
--- a/openecomp-ui/test/licenseModel/licenseKeyGroups/test.js
+++ b/openecomp-ui/test/licenseModel/licenseKeyGroups/test.js
@@ -21,6 +21,7 @@
 
 import LicenseKeyGroupsActionHelper from 'sdc-app/onboarding/licenseModel/licenseKeyGroups/LicenseKeyGroupsActionHelper.js';
 import VersionControllerUtilsFactory from 'test-utils/factories/softwareProduct/VersionControllerUtilsFactory.js';
+import {LimitItemFactory, LimitPostFactory} from 'test-utils/factories/licenseModel/LimitFactories.js';
 
 describe('License Key Groups Module Tests', function () {
 
@@ -157,4 +158,172 @@
 		});
 	});
 
+	it('Load Limits List', () => {
+
+		const limitsList = LimitItemFactory.buildList(3);		
+		deepFreeze(limitsList);
+		const store = storeCreator();
+		deepFreeze(store.getState());
+
+		const expectedStore = cloneAndSet(store.getState(), 'licenseModel.licenseKeyGroup.licenseKeyGroupsEditor.limitsList', limitsList);
+		const licenseKeyGroup = LicenseKeyGroupStoreFactory.build();
+		mockRest.addHandler('fetch', ({data, options, baseUrl}) => {
+			expect(baseUrl).toEqual(`/onboarding-api/v1.0/vendor-license-models/${LICENSE_MODEL_ID}/versions/${version.id}/license-key-groups/${licenseKeyGroup.id}/limits`);
+			expect(data).toEqual(undefined);
+			expect(options).toEqual(undefined);
+			return {results: limitsList};
+		 });
+
+		return LicenseKeyGroupsActionHelper.fetchLimits(store.dispatch, {licenseModelId: LICENSE_MODEL_ID, version, licenseKeyGroup}).then(() => {
+			expect(store.getState()).toEqual(expectedStore);
+		 });
+	});
+
+	it('Add Limit', () => {
+
+		const store = storeCreator();
+		deepFreeze(store.getState());
+
+		const limitToAdd = LimitPostFactory.build();
+
+		deepFreeze(limitToAdd);
+
+		const LimitIdFromResponse = 'ADDED_ID';
+		const limitAddedItem = {...limitToAdd, id: LimitIdFromResponse};
+		deepFreeze(limitAddedItem);
+		const licenseKeyGroup = LicenseKeyGroupStoreFactory.build();
+
+		const expectedStore = cloneAndSet(store.getState(), 'licenseModel.licenseKeyGroup.licenseKeyGroupsEditor.limitsList', [limitAddedItem]);
+
+		mockRest.addHandler('post', ({data, options, baseUrl}) => {
+			expect(baseUrl).toEqual(`/onboarding-api/v1.0/vendor-license-models/${LICENSE_MODEL_ID}/versions/${version.id}/license-key-groups/${licenseKeyGroup.id}/limits`);
+			expect(data).toEqual(limitToAdd);
+			expect(options).toEqual(undefined);
+			return {
+				returnCode: 'OK',
+				value: LimitIdFromResponse
+			};
+		});
+
+		mockRest.addHandler('fetch', ({data, options, baseUrl}) => {
+			expect(baseUrl).toEqual(`/onboarding-api/v1.0/vendor-license-models/${LICENSE_MODEL_ID}/versions/${version.id}/license-key-groups/${licenseKeyGroup.id}/limits`);
+			expect(data).toEqual(undefined);
+			expect(options).toEqual(undefined);
+			return {results: [limitAddedItem]};
+		 });
+
+		return LicenseKeyGroupsActionHelper.submitLimit(store.dispatch,
+			{
+				licenseModelId: LICENSE_MODEL_ID,
+				version,				
+				licenseKeyGroup,
+				limit: limitToAdd
+			}
+		).then(() => {
+			expect(store.getState()).toEqual(expectedStore);
+		});
+	});
+
+	it('Delete Limit', () => {
+
+		const limitsList = LimitItemFactory.buildList(1);		
+		deepFreeze(limitsList);
+					
+		const store = storeCreator({
+			licenseModel: {
+				entitlementPool: {
+					entitlementPoolEditor: {
+						limitsList
+					}
+				}
+			}
+		});
+		deepFreeze(store.getState());
+
+		const licenseKeyGroup = LicenseKeyGroupStoreFactory.build();
+		const expectedStore = cloneAndSet(store.getState(), 'licenseModel.licenseKeyGroup.licenseKeyGroupsEditor.limitsList', []);
+
+		mockRest.addHandler('destroy', ({data, options, baseUrl}) => {
+			expect(baseUrl).toEqual(`/onboarding-api/v1.0/vendor-license-models/${LICENSE_MODEL_ID}/versions/${version.id}/license-key-groups/${licenseKeyGroup.id}/limits/${limitsList[0].id}`);
+			expect(data).toEqual(undefined);
+			expect(options).toEqual(undefined);
+			return {
+				results: {
+					returnCode: 'OK'
+				}
+			};
+		});
+
+		mockRest.addHandler('fetch', ({data, options, baseUrl}) => {
+			expect(baseUrl).toEqual(`/onboarding-api/v1.0/vendor-license-models/${LICENSE_MODEL_ID}/versions/${version.id}/license-key-groups/${licenseKeyGroup.id}/limits`);
+			expect(data).toEqual(undefined);
+			expect(options).toEqual(undefined);
+			return {results: []};
+		 });
+
+		return LicenseKeyGroupsActionHelper.deleteLimit(store.dispatch, {
+			licenseModelId: LICENSE_MODEL_ID,
+			version,
+			licenseKeyGroup,
+			limit: limitsList[0]
+		}).then(() => {
+			expect(store.getState()).toEqual(expectedStore);
+		});
+	});
+
+	it('Update Limit', () => {
+
+		const limitsList = LimitItemFactory.buildList(1);		
+		deepFreeze(limitsList);
+		const licenseKeyGroup = LicenseKeyGroupStoreFactory.build();
+		const store = storeCreator({
+			licenseModel: {
+				licenseKeyGroup: {
+					licenseKeyGroupsEditor: {
+						limitsList
+					}
+				}
+			}
+		});
+
+		deepFreeze(store.getState());
+
+		
+		const previousData = limitsList[0];
+		deepFreeze(previousData);
+		const limitId = limitsList[0].id;
+		
+		const updatedLimit = {...previousData, name: 'updatedLimit'};
+		deepFreeze(updatedLimit);
+		const updatedLimitForPut = {...updatedLimit, id: undefined};
+
+		const expectedStore = cloneAndSet(store.getState(), 'licenseModel.licenseKeyGroup.licenseKeyGroupsEditor.limitsList', [updatedLimit]);
+
+
+		mockRest.addHandler('put', ({data, options, baseUrl}) => {
+			expect(baseUrl).toEqual(`/onboarding-api/v1.0/vendor-license-models/${LICENSE_MODEL_ID}/versions/${version.id}/license-key-groups/${licenseKeyGroup.id}/limits/${limitId}`);
+			expect(data).toEqual(updatedLimitForPut);
+			expect(options).toEqual(undefined);
+			return {returnCode: 'OK'};
+		});
+
+		mockRest.addHandler('fetch', ({data, options, baseUrl}) => {
+			expect(baseUrl).toEqual(`/onboarding-api/v1.0/vendor-license-models/${LICENSE_MODEL_ID}/versions/${version.id}/license-key-groups/${licenseKeyGroup.id}/limits`);
+			expect(data).toEqual(undefined);
+			expect(options).toEqual(undefined);
+			return {results: [updatedLimit]};
+		 });
+
+		return LicenseKeyGroupsActionHelper.submitLimit(store.dispatch,
+			{
+				licenseModelId: LICENSE_MODEL_ID,
+				version,				
+				licenseKeyGroup,
+				limit: updatedLimit
+			}
+		).then(() => {
+			expect(store.getState()).toEqual(expectedStore);
+		});
+	});
+
 });
diff --git a/sdc-os-chef/sdc-cassandra/chef-repo/cookbooks/cassandra-actions/attributes/default.rb b/sdc-os-chef/sdc-cassandra/chef-repo/cookbooks/cassandra-actions/attributes/default.rb
new file mode 100644
index 0000000..c7f408f
--- /dev/null
+++ b/sdc-os-chef/sdc-cassandra/chef-repo/cookbooks/cassandra-actions/attributes/default.rb
@@ -0,0 +1 @@
+normal['version'] = "1.1.0"