diff --git a/docs/guides/onap-user/design/index.rst b/docs/guides/onap-user/design/index.rst
index b003e55..ec7d67b 100644
--- a/docs/guides/onap-user/design/index.rst
+++ b/docs/guides/onap-user/design/index.rst
@@ -27,16 +27,16 @@
 
 **The "Core" Design Process includes the following steps:**
 
-* Pre-Onboarding
-    A VNF/PNF Provider delivers VNF descriptor, model and
-    artefacts (e.g. HEAT template), which will be validated
+**Pre-Onboarding**
+    A VNF/PNF/CNF Provider delivers its descriptor, model and
+    artefacts (e.g. HEAT template, Helm Chart), which will be validated
     and packaged for onboarding to ONAP
 
-* (Resource)-Onboarding
-    In the SDC a License Model is created, the VNF/PNF package imported
+**(Resource)-Onboarding**
+    In the SDC a License Model is created, the VNF/PNF/CNF package imported
     and a Vendor Software Product (VSP) is created
 
-* VF Creation and Testing
+**VF Creation and Testing**
     A V(N)F, PNF or CR Model is created (a) import of a VSP or VFC
     (b) manual creation and import of artefacts created via external
     tools like the Controller Design Studio (CDS), responsible for the
@@ -44,20 +44,19 @@
     The created VF will pass a testing workflow to be used
     in a Service Model
 
-* Service Design
+**Service Design**
     A Service Model is created as a composition of resources
     (e.g. V(N)Fs, PNFs,...), Policies, Workflows,...
-    The created Service Model will pass a testing workflow and
-    handed over to a Governance Approval and Distribution process
+    The created Service Model will ber certified and handed over to
+    the Service Distribution process
 
-* Governance Approval and Distribution
-    The Service Provider will have a specific set of policies and
-    procedures for approving Services and deploying them in the
+**Service Distribution**
+    The Service Provider will distribute the Service Model to the
     Runtime Service Catalog
 
 **The optional/additional Design steps are:**
 
-* VNF parameter assignment templating
+**VNF parameter assignment templating**
     The objective is to automate the resolution of resources for instantiation
     and any config provisioning operation, such as day0, day1 or day2
     configuration.
@@ -67,7 +66,7 @@
     ONAP CDS (Controller Design Studio) is the controller that will process
     the Controller Blueprint archive (CBA) at run-time.
 
-* Policy Design
+**Policy Design**
     These are rules, conditions, requirements, constraints, attributes,
     or needs that must be provided, maintained, and/or enforced.
     At a lower level, Policy involves machine-readable rules enabling
@@ -75,18 +74,18 @@
     provides some policy models that are implemented and pre-loaded when
     installing ONAP.
 
-* VNF LifeCycle Command templating
+**VNF LifeCycle Command templating**
     APPC Controller Design Tool (CDT) is used for self-service onboarding of
     VNF’s. VNF owners can create templates and other artifacts for APPC
     Configure command (used to apply a post-instantiation configuration)
     as well as other life cycle commands.
 
-* Workflow Design
+**Workflow Design**
     The purpose of the Workflow Designer is to enable designers to define or
     modify workflows to support Service/Resource change management scenarios
     executed by the Service Orchestrator.
 
-* Control Loop Design
+**Control Loop Design**
     This phase includes the Design of a closed loop template and associate it
     to a Service. The template represents the theoretical flow of the CL.
     It generates a deployment artifact that can be ingested by the DCAE in
@@ -111,7 +110,7 @@
 
    Service Design <./service-design/index.rst>
 
-   Governance Approval and Service Distribution <./service-distribution/index.rst>
+   Service Distribution <./service-distribution/index.rst>
 
    VNF parameter resolution Design <./parameter_resolution/index.rst>
 
diff --git a/docs/guides/onap-user/design/media/Design-Overview.png b/docs/guides/onap-user/design/media/Design-Overview.png
old mode 100755
new mode 100644
index c0c091a..276e53f
--- a/docs/guides/onap-user/design/media/Design-Overview.png
+++ b/docs/guides/onap-user/design/media/Design-Overview.png
Binary files differ
diff --git a/docs/guides/onap-user/design/media/Design-Overview.pptx b/docs/guides/onap-user/design/media/Design-Overview.pptx
old mode 100755
new mode 100644
index 835508a..64416a8
--- a/docs/guides/onap-user/design/media/Design-Overview.pptx
+++ b/docs/guides/onap-user/design/media/Design-Overview.pptx
Binary files differ
diff --git a/docs/guides/onap-user/design/pre-onboarding/index.rst b/docs/guides/onap-user/design/pre-onboarding/index.rst
index 5bfc8d4..796c4f3 100644
--- a/docs/guides/onap-user/design/pre-onboarding/index.rst
+++ b/docs/guides/onap-user/design/pre-onboarding/index.rst
@@ -7,63 +7,9 @@
 Pre-Onboarding
 ==============
 
-    * `Create a Tenant`_ (will be moved to "Service Deployment")
     * `Generate Manifest and Package Artifacts`_ (for HEAT based VNFs)
     * `Validate xNF Package (VNF/PNF)`_
 
-.. _doc_guide_user_des_pre-onb_cre-ten:
-
-Create a Tenant
----------------
-
-.. note::
-   This section is not really belonging to the "Design" phase,
-   but to the preparation of the "Service Deployment" and will be
-   moved in the next release
-
-Each service requires a tenant_ (a group of users who share a common access)
-in which resources are stored in the cloud. This process is performed using
-facilities of the network cloud, outside of ONAP. Confirm that the tenant is
-created and note the tenant ID.
-
-ONAP admin users can configure a cloud-owner to add new cloud resources.
-These are the computing and networking resources, that will support
-running VNFs. A cloud-owner holds a keystone URL, login, region and
-password, in the case of an Openstack cluster. A cloud-owner also
-belongs to a region. The region name should be the same as the Openstack
-region. Prior to creation of a cloud-owner, its region must be created
-first. Multiple tenants can share the same cloud-owner. Note that these
-tenants are ONAP tenants, not Openstack tenants. Tenant register
-services that customers are allowed to deploy. Finally, the customer is
-like an instance of the tenant.
-
-Note: there is no GUI (yet) to configure these objects. REST requests
-are sent to AAI to achieve the configuration. For a detailed list of
-required REST commands see:
-
-https://wiki.onap.org/display/DW/running+vFW+Demo+on+ONAP+Amsterdam+Release
-
-The overall process is as follows:
-
- #. Create a region and a cloud-owner. This steps registers Openstack
-    credentials. This is the only step requiring entering Openstack specific
-    parameters.
-
- #. Create a complex. The complex describes the coverage of the region with
-    a street address etc.
-
- #. Create a service. The service name should match the name of the service
-    onboarded in SDC.
-
- #. Create a tenant. Tenant in ONAP stores a design for a generic customer.
-
- #. Associate tenants with their allowed services.
-
- #. Create an instance of the tenant or customer. The customer is visible in
-    VID. A VID user can deploy allowed services on this new customer.
-
-   |image1|
-
 
 .. _doc_guide_user_des_pre-onb_gen-man:
 
@@ -76,8 +22,11 @@
    to create TOSCA based VNF or PNF Onboarding Packages are not described
    here
 
-Before onboarding resources, run generate-manifest.py to generate a
-MANIFEST file. These steps are performed outside SDC.
+The for onboarding the zip-file requires besides the HEAT template also a MANIFEST.json file, which describes the content of the package.
+To generate a MANIFEST.json file a script can be used offered by the SDC project:
+`generate-manifest.py`_
+
+These steps are performed outside SDC.
 
 **Prerequisites:** Obtain Heat/ENV files and other files required for
 onboarding. The requirements are found in the following document.
@@ -86,7 +35,7 @@
 `Heat requirements <../../../../submodules/vnfrqts/requirements.git/docs/Chapter5/Heat/index.html>`_
 
 #. Put the Heat, ENV, nested Heat, and other files used by get-file in templates
-   in a directory.
+   in a directory on a host, which supports python.
 
    Naming guidelines:
 
@@ -103,7 +52,7 @@
     - [dir y] contains the Heat/ENV files and other files
     - [dir x] contains the python script
 
-#. Run the script on the Windows command line (not valid anymore):
+#. Run the script via command line:
 
    .. code-block:: python
 
@@ -114,6 +63,8 @@
 #. Package all Heat/ENV files, all other files, and the MANIFEST.json
    into one .zip file.
 
+Example packages can be found in the SDC poject: `example-packages`_
+
 .. _doc_guide_user_des_pre-onb_val:
 
 Validate xNF Package (VNF/PNF)
@@ -128,11 +79,7 @@
 For Validation of VNF and PNF packages the tools delivered by VNFSDK can be
 used:
 
-.. toctree::
-   :maxdepth: 1
-   :titlesonly:
-
-   ../../../onap-provider/vnfvalidator.rst
+`VNF Validation Documentation <../../../onap-provider/vnfvalidator.rst>`_
 
 Prior to resource onboarding, the Certification Group does the following:
 
@@ -159,5 +106,5 @@
 No VF functionality testing is performed at this stage.
 
 
-.. |image1| image:: media/tenant.png
-.. _tenant: https://wiki.onap.org/display/DW/Glossary#Glossary-tenant
+.. _generate-manifest.py: https://git.onap.org/sdc/tree/openecomp-be/tools/scripts/generate-manifest.py
+.. _example-packages: https://git.onap.org/sdc/tree/test-apis-ci/sdc-api-tests/chef-repo/cookbooks/sdc-api-tests/files/default/Files
\ No newline at end of file
diff --git a/docs/guides/onap-user/design/resource-onboarding/index.rst b/docs/guides/onap-user/design/resource-onboarding/index.rst
index a259838..63f588d 100644
--- a/docs/guides/onap-user/design/resource-onboarding/index.rst
+++ b/docs/guides/onap-user/design/resource-onboarding/index.rst
@@ -43,16 +43,23 @@
 click |image2|
 
 **Prerequisites:** To obtain license information, contact the service
-                   provider's Supply Chain Management (SCM) group.
+provider's Supply Chain Management (SCM) group.
 
-|image3|
 
 #. From the SDC HOME page, click *ONBOARD*.
-#. Hover over Add and select New License Model.
+
+   |image11|
+
+#. In the Workspace select *CREATE NEW VLM*.
+
+   |image12|
+
 #. Complete all fields.
-#. Click *Save*.
-#. In the ONBOARD header, hover over the arrow after License Agreements to
-   reveal a menu.
+#. Click *Create*.
+#. In the Overview Dialog.
+
+   |image13|
+
    Select the following options in order:
 
    #. Create 0 or more license key groups (see
@@ -64,13 +71,17 @@
       Note: Perform all steps above before submitting the license model to
       the SDC catalog.
 
-#. In the header, click the license model created in steps 1 to 4.
-#. Click *Check In* to save changes.
-#. Click *Submit* to add the license model to the catalog. A success message
-   displays.
+   |image14|
+
+#. Click *Submit* to add the license model to the catalog. 
+After filling a comment, press *Commit&Submit*.
+
+   |image15|
+
 #. After creating a license, complete `Create a Vendor Software Product`_ to
    add the VSP required for the associated VF/PNF.
 
+
 Create a License Key Group [Optional]
 -------------------------------------
 
@@ -79,29 +90,28 @@
 
 **Prerequisites:** `Create a License Model`_
 
-|image4|
+#. Select the License Model in the Onboard section of the SDC.
+#. In the Overview click the + behind the *License Key Groups*.
 
-1. From the drop-down menu, select License Key Groups.
-2. Click *Add License Key Group*.
-    The Create New License Key Group box displays.
-3. Complete all fields.
-    Note: Enter the manufacturer reference number in the Name field.
-4. Click *Save*.
+   |image4|
+
+#. Complete all fields (mandatory fields are marked by a red asterisk).
+#. Click *Save*.
 
 Create an Entitlement Pool
 --------------------------
 
 **Prerequisites:** If required by the resource model, create one or more
-                   license key groups (see
-                   `Create a License Key Group [Optional]`_).
+license key groups (see
+`Create a License Key Group [Optional]`_).
 
-|image5|
+#. Select the License Model in the Onboard section of the SDC.
+#. In the Overview click the + behind the *Entitlement Pools*.
 
-1. From the drop-down menu, select Entitlement Pools.
-2. Click *Add Entitlement Pool*.
-    The Create New Entitlement Pool box displays.
-3. Complete required fields (mandatory fields are marked by a red asterisk).
-4. Click *Save*.
+   |image5|
+
+#. Complete required fields (mandatory fields are marked by a red asterisk).
+#. Click *Save*.
 
 Create a Feature Group
 ----------------------
@@ -112,19 +122,19 @@
   (see `Create a License Key Group [optional]`_)
 * entitlement pools (see `Create an Entitlement Pool`_)
 
-|image6|
+#. Select the License Model in the Onboard section of the SDC.
+#. In the Overview click the + behind the *Feature Groups*.
 
-1. From the drop-down menu, select Feature Groups.
-2. Click *Add Feature Group*.
-    The Create New Feature Group box displays.
-3. On the General tab, complete all fields.
-4. Click *Entitlement Pools*.
-5. Click *Available Entitlement Pools*.
-6. Select one or more entitlement pools and click the right arrow.
-7. Click *License Key Groups*.
-8. Click *Available License Key Groups*.
-9. Select one or more license key groups and click the right arrow.
-10. Click *Save*.
+   |image6|
+
+#. On the General tab, complete all fields.
+#. Click *Entitlement Pools*.
+#. Click *Available Entitlement Pools*.
+#. Select one or more entitlement pools and click the right arrow.
+#. Click *License Key Groups*.
+#. Click *Available License Key Groups*.
+#. Select one or more license key groups and click the right arrow.
+#. Click *Save*.
 
 Create a License Agreement
 --------------------------
@@ -132,18 +142,17 @@
 **Prerequisites:** Create one or more feature groups
                    (see `Create a Feature Group`_).
 
-|image7|
+#. Select the License Model in the Onboard section of the SDC.
+#. In the Overview click the + behind the *License Agreements*.
 
-1. From the drop-down menu, select License Agreements.
-2. Click *Add License Agreement*.
-    The Create New License Agreement box displays.
-3. On the General tab, complete required fields (mandatory fields are marked
-   by a red asterisk).
-4. Click *Feature Groups*.
-5. If not selected, click *Available Feature Groups*.
-6. Select one or more groups and click the right arrow.
-7. Click *Save*.
-8. Return to step 5 of `Create a License Model`_ to complete the license model.
+   |image7|
+
+#. On the General tab, complete required fields.
+#. Click *Feature Groups*.
+#. If not selected, click *Available Feature Groups*.
+#. Select one or more groups and click the right arrow.
+#. Click *Save*.
+#. Return to step 6 of `Create a License Model`_ to complete the license model.
 
 .. _doc_guide_user_des_res-onb_cre-vsp:
 
@@ -166,31 +175,44 @@
 * If the package is a secure package then :ref:`pre-install the corresponding Root Certificate in SDC <doc_guide_user_des_res-onb_pre-install_root_certificate>`.
 
 #. From the SDC HOME page, click *ONBOARD*.
-#. Hover over Add and select New Vendor Software Product.
-#. The New Software Product box is displayed.
-    Complete all fields.
-#. Click *Save*.
-    The Overview section is displayed.
+
+   |image11|
+
+#. In the Workspace select *CREATE NEW VSP*.
+
+   |image21|
+
+#. Complete all fields.
+#. Click *Create*.
+     The Overview page is shown
+
+   |image22|
 
    .. note::
      A warning is displayed under License Agreement if the VSP does not have
      an associated license.
 
-#. Click *Software Product Details* (left pane).
+#. Click *General* in the left section.
 
-   |image8|
+#. For the defined Vendor, select a licensing version, a license agreement,
+   and one or more feature groups.
 
-#. In order, select a licensing version, a license agreement, and one or more
-   feature groups.
+   |image23|
+
 #. [Optional] Complete other fields, such as Availability (high-availability
    zones) and Storage Data Replication (requirement for storage replication),
    as required.
-#. In Software Product Attachments (right pane), click *Select file*.
+#. In the *Overview* section, select *Software Product Attachments*
+   (right pane), click *Select file*.
 #. In case of a VNF HEAT file: Locate the Heat .zip package and click *Open*.
 
    In case of a VNF or PNF CSAR file: Locate the VNF or PNF csar/.zip package
    and click *Open*.
-#. SDC validates the files in the package. After successful validation, SDC
+#. The file is loaded and the attachments page opens
+
+   |image24|
+
+#. Press the Button *Procees to Validation*. After successful validation, SDC
    displays the files and a success message. If validation fails, SDC displays
    the errors in the files.
 
@@ -198,8 +220,9 @@
 
    |image9|
 
-#. Click *Check In* to save the changes.
 #. Click *Submit* to add the VSP to the catalog.
+
+   After filling a comment, press *Commit&Submit*.
 #. A success message is displayed. If the VSP attachments contain errors, an
    error message is displayed instead. Fix the issue(s) and re-submit.
 #. To configure VFCs associated with the VSP, see
@@ -223,9 +246,18 @@
                    (see `Create a Vendor Software Product`_).
 
 #. From the SDC HOME page, click *ONBOARD* and search for a VSP.
-#. In the Overview section, click *Check Out*.
-#. In Components (bottom pane), click a VFC (VSP component).
-    The component links display in the left pane.
+#. Selecting the VSP opens the *Versions* page.
+
+   |image25|
+
+#. Press the + at *Create New Version* on the version to update
+
+   |image26|
+
+#. Fill the fields and press *Create*
+#. In Components , click a VFC (VSP component).
+
+   The component links display in the left pane.
 #. Click *General* to view and edit general parameters such as hypervisor,
    image format, VM recovery details, and DNS configuration.
 #. Click *Compute* to view and edit VM parameters such as the number of VMs
@@ -244,12 +276,15 @@
 #. Click *Storage* to configure storage information, such as backup type,
    storage size, and logging.
 #. Click *Process Details*, click *Add Component Process Details*, and complete
-   the Create New Process Details dialog box. Use Process Details to identify
+   the *Create New Process Details* dialog box.
+
+   Use Process Details to identify
    the processes and configuration associated with VFCs.
 #. Click *Monitoring* to upload MIB or JSON files for SNMP traps and polling.
-#. Click *Overview* and click *Check In* to save changes.
-#. If updating a VSP, click *Submit*. If this procedure is performed during the
-   workflow to create a VSP, there is no need to click *Submit* now.
+#. To update the VSP, click *Submit*
+
+   After filling a comment, press *Commit&Submit* and the
+   new version is certified.
 
 .. _doc_guide_user_des_res-onb_upd-vsp:
 
@@ -262,7 +297,15 @@
                    (see `Create a Vendor Software Product`_).
 
 #. From the SDC HOME page, click *ONBOARD* and search for a VSP.
-#. In the Overview section, click *Check Out*.
+#. Selecting the VSP opens the *Versions* page.
+
+   |image25|
+
+#. Press the + at *Create New Version* on the version to update
+
+   |image26|
+
+#. Fill the fields and press *Create*
 #. In Software Product Attachments (right pane), click *Select file*.
 #. In case of a VNF HEAT file: Locate the Heat .zip package and click *Open*.
 
@@ -271,17 +314,21 @@
 
     SDC warns that uploading a new package erases existing data.
 #. Click *Continue* to upload the new package.
-    SDC validates the files in the package. After successful validation, SDC
-    displays the files and a success message. If validation fails, SDC displays
-    the errors in the files.
+#. The file is loaded and the attachments page opens
 
-   .. note::
-     If the Heat template contains errors, contact the Certification Group for
-     guidance on how to proceed.
-#. Click *Check In* to save changes.
-#. Click *Submit* to add the VSP to the catalog.
-    A success message is displayed. If the VSP attachments contain errors, an
-    error message is displayed instead. Fix the issue(s) and re-submit.
+   |image24|
+
+#. Press the Button *Procees to Validation*. After successful validation, SDC
+   displays the files and a success message. If validation fails, SDC displays
+   the errors in the files.
+
+   Example Heat errors:
+
+   |image9|
+
+#. Click *Submit* to add the new VSP version to the catalog.
+    After filling a comment, press *Commit&Submit* and the
+    new version is certified.
 #. After updating the VSP:
 
    #. Upload the VSP to the Vf/PNF
@@ -336,3 +383,25 @@
 .. |image9| image:: media/sdro-design_onboardvsp_heaterrors.png
 
 .. |image10| image:: media/sdro-edit-nic.png
+
+.. |image11| image:: media/sdro-new-vlm.png
+
+.. |image12| image:: media/sdro-new-vlm-dialog.png
+
+.. |image13| image:: media/sdro-new-vlm-overview.png
+
+.. |image14| image:: media/sdro-license-model.png
+
+.. |image15| image:: media/sdro-license-model-submit.png
+
+.. |image21| image:: media/sdro-new-vsp.png
+
+.. |image22| image:: media/sdro-new-vsp-overview.png
+
+.. |image23| image:: media/sdro-new-vsp-general.png
+
+.. |image24| image:: media/sdro-new-vsp-attachments.png
+
+.. |image25| image:: media/sdro-vsp-version.png
+
+.. |image26| image:: media/sdro-vsp-version-dialog.png
\ No newline at end of file
diff --git a/docs/guides/onap-user/design/resource-onboarding/media/sdro-design_onboardvsp_heaterrors.png b/docs/guides/onap-user/design/resource-onboarding/media/sdro-design_onboardvsp_heaterrors.png
index 94a6743..9429683 100644
--- a/docs/guides/onap-user/design/resource-onboarding/media/sdro-design_onboardvsp_heaterrors.png
+++ b/docs/guides/onap-user/design/resource-onboarding/media/sdro-design_onboardvsp_heaterrors.png
Binary files differ
diff --git a/docs/guides/onap-user/design/resource-onboarding/media/sdro-edit-nic.png b/docs/guides/onap-user/design/resource-onboarding/media/sdro-edit-nic.png
index 2db64c4..28d361b 100644
--- a/docs/guides/onap-user/design/resource-onboarding/media/sdro-edit-nic.png
+++ b/docs/guides/onap-user/design/resource-onboarding/media/sdro-edit-nic.png
Binary files differ
diff --git a/docs/guides/onap-user/design/resource-onboarding/media/sdro-entitlement-pool.png b/docs/guides/onap-user/design/resource-onboarding/media/sdro-entitlement-pool.png
index 20fee24..db56087 100644
--- a/docs/guides/onap-user/design/resource-onboarding/media/sdro-entitlement-pool.png
+++ b/docs/guides/onap-user/design/resource-onboarding/media/sdro-entitlement-pool.png
Binary files differ
diff --git a/docs/guides/onap-user/design/resource-onboarding/media/sdro-feature-group.png b/docs/guides/onap-user/design/resource-onboarding/media/sdro-feature-group.png
index 9f4f1b4..fcc194d 100644
--- a/docs/guides/onap-user/design/resource-onboarding/media/sdro-feature-group.png
+++ b/docs/guides/onap-user/design/resource-onboarding/media/sdro-feature-group.png
Binary files differ
diff --git a/docs/guides/onap-user/design/resource-onboarding/media/sdro-license-agreement.png b/docs/guides/onap-user/design/resource-onboarding/media/sdro-license-agreement.png
index ef99406..a1cd74d 100644
--- a/docs/guides/onap-user/design/resource-onboarding/media/sdro-license-agreement.png
+++ b/docs/guides/onap-user/design/resource-onboarding/media/sdro-license-agreement.png
Binary files differ
diff --git a/docs/guides/onap-user/design/resource-onboarding/media/sdro-license-keygroup.png b/docs/guides/onap-user/design/resource-onboarding/media/sdro-license-keygroup.png
index c8f2934..ed1e7ac 100644
--- a/docs/guides/onap-user/design/resource-onboarding/media/sdro-license-keygroup.png
+++ b/docs/guides/onap-user/design/resource-onboarding/media/sdro-license-keygroup.png
Binary files differ
diff --git a/docs/guides/onap-user/design/resource-onboarding/media/sdro-license-model-submit.png b/docs/guides/onap-user/design/resource-onboarding/media/sdro-license-model-submit.png
new file mode 100644
index 0000000..382fca6
--- /dev/null
+++ b/docs/guides/onap-user/design/resource-onboarding/media/sdro-license-model-submit.png
Binary files differ
diff --git a/docs/guides/onap-user/design/resource-onboarding/media/sdro-license-model.png b/docs/guides/onap-user/design/resource-onboarding/media/sdro-license-model.png
new file mode 100644
index 0000000..cbc5a0e
--- /dev/null
+++ b/docs/guides/onap-user/design/resource-onboarding/media/sdro-license-model.png
Binary files differ
diff --git a/docs/guides/onap-user/design/resource-onboarding/media/sdro-new-vlm-dialog.png b/docs/guides/onap-user/design/resource-onboarding/media/sdro-new-vlm-dialog.png
new file mode 100644
index 0000000..91a1cf0
--- /dev/null
+++ b/docs/guides/onap-user/design/resource-onboarding/media/sdro-new-vlm-dialog.png
Binary files differ
diff --git a/docs/guides/onap-user/design/resource-onboarding/media/sdro-new-vlm-overview.png b/docs/guides/onap-user/design/resource-onboarding/media/sdro-new-vlm-overview.png
new file mode 100644
index 0000000..09dba66
--- /dev/null
+++ b/docs/guides/onap-user/design/resource-onboarding/media/sdro-new-vlm-overview.png
Binary files differ
diff --git a/docs/guides/onap-user/design/resource-onboarding/media/sdro-new-vlm.png b/docs/guides/onap-user/design/resource-onboarding/media/sdro-new-vlm.png
new file mode 100644
index 0000000..141f7b2
--- /dev/null
+++ b/docs/guides/onap-user/design/resource-onboarding/media/sdro-new-vlm.png
Binary files differ
diff --git a/docs/guides/onap-user/design/resource-onboarding/media/sdro-new-vsp-attachments.png b/docs/guides/onap-user/design/resource-onboarding/media/sdro-new-vsp-attachments.png
new file mode 100644
index 0000000..ae986ac
--- /dev/null
+++ b/docs/guides/onap-user/design/resource-onboarding/media/sdro-new-vsp-attachments.png
Binary files differ
diff --git a/docs/guides/onap-user/design/resource-onboarding/media/sdro-new-vsp-general.png b/docs/guides/onap-user/design/resource-onboarding/media/sdro-new-vsp-general.png
new file mode 100644
index 0000000..11bc978
--- /dev/null
+++ b/docs/guides/onap-user/design/resource-onboarding/media/sdro-new-vsp-general.png
Binary files differ
diff --git a/docs/guides/onap-user/design/resource-onboarding/media/sdro-new-vsp-overview.png b/docs/guides/onap-user/design/resource-onboarding/media/sdro-new-vsp-overview.png
new file mode 100644
index 0000000..03684e5
--- /dev/null
+++ b/docs/guides/onap-user/design/resource-onboarding/media/sdro-new-vsp-overview.png
Binary files differ
diff --git a/docs/guides/onap-user/design/resource-onboarding/media/sdro-new-vsp.png b/docs/guides/onap-user/design/resource-onboarding/media/sdro-new-vsp.png
new file mode 100644
index 0000000..0484157
--- /dev/null
+++ b/docs/guides/onap-user/design/resource-onboarding/media/sdro-new-vsp.png
Binary files differ
diff --git a/docs/guides/onap-user/design/resource-onboarding/media/sdro-vsp-version-dialog.png b/docs/guides/onap-user/design/resource-onboarding/media/sdro-vsp-version-dialog.png
new file mode 100644
index 0000000..be29010
--- /dev/null
+++ b/docs/guides/onap-user/design/resource-onboarding/media/sdro-vsp-version-dialog.png
Binary files differ
diff --git a/docs/guides/onap-user/design/resource-onboarding/media/sdro-vsp-version.png b/docs/guides/onap-user/design/resource-onboarding/media/sdro-vsp-version.png
new file mode 100644
index 0000000..e73ddf1
--- /dev/null
+++ b/docs/guides/onap-user/design/resource-onboarding/media/sdro-vsp-version.png
Binary files differ
diff --git a/docs/guides/onap-user/design/service-design/index.rst b/docs/guides/onap-user/design/service-design/index.rst
index 4a68a9c..fc290cb 100644
--- a/docs/guides/onap-user/design/service-design/index.rst
+++ b/docs/guides/onap-user/design/service-design/index.rst
@@ -12,7 +12,7 @@
 
 **Tool:** SDC
 
-**SDC user roles:** Designer, Tester
+**SDC user roles:** Designer
 
 |image1|
 
@@ -20,34 +20,37 @@
 
 **Steps**
 
-   #. `Create a Service`_
-   #. `Create a Workflow [optional]`_
+   #. `Create Service`_
+   #. `Create a Management Workflow [optional]`_
    #. `Create a Network Callflow [optional]`_
-   #. `Select VID Inputs [optional]`_
-   #. `Update a Service [optional]`_
-   #. `Submit a Service for Testing`_
-   #. `Test a Service`_
-   #. `Assign an IP Address Plan`_
+   #. `Add Service Inputs [optional]`_
+   #. `Update Service [optional]`_
+   #. `Certify Service`_
 
-Create a Service
-----------------
+.. _doc_guide_user_des_ser-cre_serv:
 
-**Prerequisites:** Create VFs required for this service (see :ref:`doc_guide_user_des_vf-cre`).
+Create Service
+--------------
 
-#. From the SDC HOME page, hover over Add and select Add Service.
+**Prerequisites:** Create VF/PNFs required for this service (see :ref:`doc_guide_user_des_vf-cre`).
+
+#. From the SDC HOME page, hover over Add and select *ADD SERVICE*.
+
+   |image0|
+
 #. In the General section, complete all fields.
 
-   Note: Use the letters "Svc" in the name to indicate that the
-   component is a service.
+   |image5|
 
 #. Click Create.
 
-   A message displays when VF creation is complete.
+   A message displays when Service creation is complete.
 
 #. Click Composition.
 
-   For a description of the Composition section (see \ `Composition
-   (Service design) <https://wiki.onap.org/x/lIwP>`__ ).
+   |image6|
+
+   For a description of the Composition section (see SDC User Guide ).
 
 #. Drag one or more elements from the Elements palette to the canvas.
 #. To connect elements:
@@ -62,7 +65,7 @@
 
 #. To add artifacts at the service level:
 
-   #. Click an empty area in the canvas and click Deployment Artifacts
+   #. Click an empty area in the canvas and click *Deployment Artifacts*
       (right pane).
    #. Click \ |image3|.
    #. Select the type.
@@ -72,41 +75,50 @@
 
    Use this function to add YANG artifacts for distribution to SDNC.
 
-#. Click Check In to save changes.
+#. [Optional]  At any time before checking in the Service, click
+   these options to update Service information:
+
+   .. note:: These tasks can be done only before certifying the Service.
+
+   - **General->Icon** change the icon associated with the Service
+   - **TOSCA Artifacts** view and edit artifacts, such as the .csar file
+     and TOSCA template
+   - **Composition** view or edit the graphical representation of the
+     service-level TOSCA model
+   - **Activity Log** view activity related to the Service
+     (displays the action, date, user, status, and any comments related to each
+     action)
+   - **Management Workflow** model service lifecycle workflows for execution
+     in SO (see `Create a Management Workflow [optional]`_)
+   - **Network Call Flow** model interactions among VFs (see `Create a
+      Network Callflow [optional]`_)
+   - **Deployment** view HEAT modules in VSPs
+   - **Properties Assignment** define or update properties,
+     policies and input parameters used during Service instantiation
+     (see `Add Service Inputs [optional]`_).
+   - **Monitoring** ...
+
+#. Click *Check In* to save changes.
 
    A box displays for confirming the changes.
 
 #. Enter a comment and click OK.
 
-   A message displays when the VF is checked in.
+   A message displays when the Service is checked in and the
+   Home page is displayed.
 
-#. [Optional] At any time before submitting the service for testing,
-   click these options to update service information:
+#. After creating a service and configuring optional fields, certify it
+   (see `Certify Service`_).
 
-   -  Icon — change the icon associated with the service
-   -  TOSCA Artifacts — view and edit artifacts, such as the .csar file
-      and TOSCA template
-   -  Composition — view or edit the graphical representation of the
-      service-level TOSCA model
-   -  Activity Log — view activity related to the service
-   -  Workflow — model service lifecycle workflows for execution in SO
-      (see `Create a Workflow [optional]`_)
-   -  Network Call Flow — model interactions among VFs (see `Create a
-      Network Callflow [optional]`_)
-   -  Deployment — view HEAT modules in VSPs
-   -  Inputs — select parameters as input fields during VID
-      instantiation (see `Select VID Inputs [optional]`_).
-
-#. After creating a service and configuring optional fields, submit it
-   for testing (see `Submit a Service for Testing`_).
-
-Note: Create Service can now be invoked via External SDC API also.
+Note: Create Service can also be invoked via External SDC API.
 Refer SDC REST API reference for details of the API.
 Currently, only a 'Partner Domain Service' category is supported
 which cannot be created manually from SDC portal.
 
-Create a Workflow [optional]
-----------------------------
+.. _doc_guide_user_des_ser-cre_wf:
+
+Create a Management Workflow [optional]
+---------------------------------------
 
 Create a workflow to model the SO recipes of the service life cycle such
 as instantiation, upgrade, termination, or suspension of a service or
@@ -120,11 +132,16 @@
 **Prerequisites:** All the required ActivitySpec as supported by SO
  are registered in SDC.
 
-#. From the SDC HOME page, click WORKFLOW.
-#. Click Add Workflow.
-#. The Create New Workflow box displays.
+#. From the SDC HOME page, click CATALOG and search for a service.
+#. Click the service and click *Check Out*.
+#. Select the panel *Management Workflow*.
+#. Click *Add Workflow*.
+#. The *Create New Workflow* box displays.
 #. Complete all fields.
 #. Click Create.
+
+   |image7|
+
 #. Specify Inputs & Outputs of Workflow
 #. Define the Composition of Workflow.
 
@@ -138,6 +155,8 @@
 #. Click Save.
 #. Certify the Workflow.
 
+.. _doc_guide_user_des_ser-cre_nfw:
+
 Create a Network Callflow [optional]
 ------------------------------------
 
@@ -148,10 +167,10 @@
 Note: The information collected in this section is not distributed with
 the service model.
 
-**Prerequisites:** `Create a service`_
+**Prerequisites:** `Create service`_
 
-#. From the SDC HOME page, click CATALOG and search for a service.
-#. Click the service and click Check Out.
+#. From the SDC HOME page, click CATALOG and search for the service.
+#. Click the service and click *Check Out*.
 #. Click Network Call Flow.
 #. Click Add Workflow.
    The Create New Workflow box displays.
@@ -182,35 +201,44 @@
 
 #. [Optional] Change the order of steps by clicking a step and dragging
    it to the preferred position.
-#. Click Save.
-#. Click Check In to save changes.
+#. Click *Save*.
+#. Click *Check In* to save changes.
 
-Select VID Inputs [optional]
-----------------------------
+.. _doc_guide_user_des_ser-para_in:
 
-Select parameters as input fields during
-`VID <https://wiki.onap.org/display/DW/Glossary#Glossary-VID>`__
-instantiation.
+Add Service Inputs [optional]
+-----------------------------
 
-Note: For questions about how to use this section, contact the Service
-Design and Creation team (see \ `Mailing
-Lists <https://wiki.onap.org/display/DW/Mailing+Lists>`__).
+Select parameters as input fields during Service instantiation.
 
-**Prerequisites:** `Create a service`_
+
+**Prerequisites:** `Create service`_
 
 #. From the SDC HOME page, click CATALOG and search for a service.
-#. Click the service and click Check Out.
-#. Click Inputs.
-#. From the Resource instance inputs pane, expand the name of a
-   resource.
-#. Select inputs by clicking the check box in each row as required.
+#. Click the service and click *Check Out*.
+#. Click *Properties Assignment*.
+
+   |image8|
+
+#. From the *Composition* pane, select the *SELF* object
+   representing the service.
+#. In the *Properties* the existing Service properites are shown
+#. With *+Add Property* you can add a new property
+#. To set a property as *Input* parameter, select the parameter
+   by clicking the check box in each row as required.
    Note: Do not select inputs that are already in the ENV file (this
    overwrites values specified in the ENV).
-#. Click \ |image4| to move selected inputs to the Service inputs pane.
-#. Click Check In to save changes.
 
-Update a Service [optional]
----------------------------
+   |image9|
+
+#. Click *Declare Input* to add the selected parameter to the
+   Service *Input* pane.
+#. Click *Check In* to save changes.
+
+.. _doc_guide_user_des_ser-upd_serv:
+
+Update Service [optional]
+-------------------------
 
 Update service information and artifacts.
 
@@ -220,85 +248,72 @@
 **Prerequisites:**
 
 -  Create a service.
--  If a VF included in the service was updated: see "Update a VF
-   [optional]" and "Test a VF".
+-  If a VF included in the service was updated:
+   see :ref:`doc_guide_user_des_vf-cre_vf-upd`
 
-#. From the SDC HOME page, click CATALOG and search for a service.
-#. Click the service and click Check Out.
+#. From the SDC HOME page, click CATALOG and search for the service.
+#. Click the service and click *Check Out*.
 #. Click Composition.
 #. To update the version of a VF referenced in the service:
 
    #. Click Composition.
    #. Click the VF in the canvas.
-   #. On the General Info tab (right pane), select the VF version.
+   #. On the *General Info* tab (right pane), select the VF version.
 
 #. To update artifacts at the service level:
 
-   #. Click an empty area in the canvas and click Deployment Artifacts
+   #. Click an empty area in the canvas and click *Deployment Artifacts*
       (right pane).
    #. View, add, delete, or download artifacts as required.
 
 #. [Optional] Add, edit, or remove VFs that comprise the service
-   reference architecture (see steps 4 to 6 in \ `Create a Service`_).
-#. [Optional] Click Operations to edit Service Operations.
+   reference architecture (see steps 4 to 6 in \ `Create Service`_).
+#. [Optional] Click *Operations* to edit Service Operations.
 
    #. Create/Edit Operations
    #. Assign Workflow
    #. Click Save
 
-#. [Optional] Click Management Callflow to edit, upload, or delete
-   associated deployment artifacts (see "Create a Management Workflow [optional]").
-#. [Optional] Click Network Callflow to edit the interactions among VFs
+#. [Optional] Click *Management Workflow* to edit, upload, or delete
+   associated deployment artifacts
+   (see `Create a Management Workflow [optional]`_).
+#. [Optional] Click *Network Callflow* to edit the interactions among VFs
    that comprise the service (see `Create a Network Callflow [optional]`_).
-#. [Optional] Click Inputs to select parameters as input fields during
-   VID instantiation (see `Select VID Inputs [optional]`_).
-#. Click Check In to save changes.
-#. After updating a service and configuring optional fields, submit it
-   for testing (see `Submit a Service for Testing`_).
+#. [Optional] Click *Properties Assignement* to select parameters as
+   input fields during Service instantiation
+   (see `Add Service Inputs [optional]`_).
+#. Click *Check In* to save changes.
+#. After updating a service and configuring optional fields, certify it
+   (see `Certify Service`_).
 
-Submit a Service for Testing
-----------------------------
+.. _doc_guide_user_des_ser-cfy_serv:
+
+Certify Service
+---------------
 
 Note: A service cannot be submitted for testing if the reference
 architecture contains uncertified resources.
 
-**Prerequisites:** `Create a Service`_
+**Prerequisites:** `Create Service`_
 
-#. When a service is ready for testing, click CATALOG and search for the
-   service.
-#. Click the service and click Submit for Testing.
-   A box displays for sending a message to the testers.
-#. Enter a message for the testers asking that they begin service
-   certification and click OK.
+**Steps**
 
-   The default mail client launches with a draft email containing the
-   message from step 2.
+#. When a Service is ready for certification,
+   click *CATALOG* and search for the checked-in Service.
+#. Click the Service and click *Certify*.
 
-#. Add the email addresses of the people on the Certification Group with
-   the Tester role and send the email.
+#. Enter a comment and click *OK*.
 
-Test a Service
---------------
+#. A Message appears, that the Service is certified.
 
-Test the design and associated artifacts of a service.
 
-**Prerequisites:** `Submit a Service for Testing`_.
-
-#. Sign in to SDC as a Tester.
-#. From the HOME page, select Ready For Testing under Active Projects.
-#. In the right pane, click the service to test.
-#. Click Start Testing.
-#. Test the service.
-#. When testing is complete, click Accept.
-
-Assign an IP Address Plan
--------------------------
-
-Assigning an IP address plan is specific to each OpenECOMP installation.
-The object: to assign a Service's key to a "plan" for allocating IP
-addresses.
-
-.. |image1| image:: media/design_service_workflow.png
+.. |image0| image:: media/sdc-home.png
+.. |image1| image:: media/sdc-service-workflow.png
 .. |image2| image:: media/design_asdccanvas_connect_elements.png
 .. |image3| image:: media/design_service_adddeploymentartifact.png
 .. |image4| image:: media/design_service_inputs_move.png
+.. |image5| image:: media/sdc-service-general.png
+.. |image6| image:: media/sdc-service-composition.png
+.. |image7| image:: media/sdc-service-workflow.png
+.. |image8| image:: media/sdc-service-properties.png
+.. |image9| image:: media/sdc-service-properties-input.png
\ No newline at end of file
diff --git a/docs/guides/onap-user/design/service-design/media/sdc-home.png b/docs/guides/onap-user/design/service-design/media/sdc-home.png
new file mode 100644
index 0000000..3b14c99
--- /dev/null
+++ b/docs/guides/onap-user/design/service-design/media/sdc-home.png
Binary files differ
diff --git a/docs/guides/onap-user/design/service-design/media/sdc-service-composition.png b/docs/guides/onap-user/design/service-design/media/sdc-service-composition.png
new file mode 100644
index 0000000..4ac0d49
--- /dev/null
+++ b/docs/guides/onap-user/design/service-design/media/sdc-service-composition.png
Binary files differ
diff --git a/docs/guides/onap-user/design/service-design/media/sdc-service-general.png b/docs/guides/onap-user/design/service-design/media/sdc-service-general.png
new file mode 100644
index 0000000..4bb65d7
--- /dev/null
+++ b/docs/guides/onap-user/design/service-design/media/sdc-service-general.png
Binary files differ
diff --git a/docs/guides/onap-user/design/service-design/media/sdc-service-properties-input.png b/docs/guides/onap-user/design/service-design/media/sdc-service-properties-input.png
new file mode 100644
index 0000000..2296fd3
--- /dev/null
+++ b/docs/guides/onap-user/design/service-design/media/sdc-service-properties-input.png
Binary files differ
diff --git a/docs/guides/onap-user/design/service-design/media/sdc-service-properties.png b/docs/guides/onap-user/design/service-design/media/sdc-service-properties.png
new file mode 100644
index 0000000..0dc111e
--- /dev/null
+++ b/docs/guides/onap-user/design/service-design/media/sdc-service-properties.png
Binary files differ
diff --git a/docs/guides/onap-user/design/service-design/media/sdc-service-workflow-design.png b/docs/guides/onap-user/design/service-design/media/sdc-service-workflow-design.png
new file mode 100644
index 0000000..03867f9
--- /dev/null
+++ b/docs/guides/onap-user/design/service-design/media/sdc-service-workflow-design.png
Binary files differ
diff --git a/docs/guides/onap-user/design/service-design/media/sdc-service-workflow.png b/docs/guides/onap-user/design/service-design/media/sdc-service-workflow.png
new file mode 100644
index 0000000..7caf981
--- /dev/null
+++ b/docs/guides/onap-user/design/service-design/media/sdc-service-workflow.png
Binary files differ
diff --git a/docs/guides/onap-user/design/service-distribution/index.rst b/docs/guides/onap-user/design/service-distribution/index.rst
index 8de0e92..fbd0d1b 100644
--- a/docs/guides/onap-user/design/service-distribution/index.rst
+++ b/docs/guides/onap-user/design/service-distribution/index.rst
@@ -4,126 +4,82 @@
 
 .. _doc_guide_user_des_ser-dis:
 
-Governance Approval and Service Distribution
-============================================
+Service Distribution
+====================
 
 Each ONAP platform operator will have a specific set of policies
 and procedures for approving Services and deploying them in the
 operator's ONAP environment. This outline describes the general
 flow of such procedures.
 
-**Goal:** Add all information required to create, instantiate, and
-manage a service.
+**Goal:** Add all information required to create, instantiate, and
+manage a service in Runtime.
 
-**Tools:** SDC
+**Tools:** SDC
 
-**SDC user roles:** Governor, Ops
+**SDC user roles:** Designer
+
+
+|image1|
+
+**Figure: Workflow for Service Distribution**
 
 Steps
 -----
 
-- `Review a Service for Governance Approval`_
-- `Request Service Distribution`_
-- `Distribute a Service`_
+- `Distribute Service`_
+- `Monitor Distribution`_
 - `Verify that the DCAE Blueprint is Deployed`_
 
-|image1|
 
-**Figure 1. Workflow**
+.. _doc_guide_user_des_ser-dis-start:
 
-Review a Service for Governance Approval
-----------------------------------------
+Distribute Service
+------------------
 
-A member of the Governance Board performs a governance review of a
-certified service and its associated VFs, and then approves (or rejects)
-the artifacts for distribution.
-
-**Prerequisites:** Service is tested.
-
-**Steps**
-
-#. Sign in to SDC as a Governor.
-#. From the HOME page, click CATALOG and select a service that is ready
-   for governance review.
-#. Review the service and its associated resources.
-#. To view deployment artifacts:
-
-   #. Click *Composition* tab (left pane) and then click the Deployment
-      Artifact icon (right pane) to see the list of artifacts.
-   #. Click the download icon adjacent to an artifact to download and
-      view it.
-
-#. When the review is complete, click:
-
-   -  *Accept* if the service passes the governance review. The service is
-      marked Approved for Distribution.
-   -  *Reject* if the service fails the governance review. The service is
-      marked Rejected for Distribution.
-
-After a service receives governance approval, it moves into the Waiting
-to be Distributed section of the Operations Workspace (Ops role)
-
-Request Service Distribution
-----------------------------
-
-Request service distribution to populate all appropriate ONAP
-components with the resources and artifacts ssociated with the service and its
-VFs.
-
-**Prerequisites:**
-
-A service has received governance approval and is
-available in the Waiting to be Distributed section of the SDC Operations
-Workspace (under the Ops Role). For more information, see
-`Review a Service for Governance Approval`_.
-
-The steps shown here are generic; each service provider has a different,
-specific set of instructions. Contact your site IT support for the
-particulars.
-
-**Steps**
-
-#. Open at ticket request at your site
-#. Make a "DISTRIBUTION REQUEST"
-#. Provide the following information in your request:
-
-   -  Environment
-   -  Name of service to be distributed
-   -  Version number
-   -  [Optional] Additional information or instructions (provide special
-      instructions for the request)
-   -  Your user ID
-   -  [Optional] Alternate Contact user ID (provide an alternate contact
-      if the primary contact is unavailable)
-
-Distribute a Service
---------------------
-
-**Prerequisites:** The service is approved.
+**Prerequisites:** The Service is Certified.
 
 **Steps**
 
 
-#. Sign in to SDC as Ops.
-#. In the Active Projects pane (left pane) of the HOME page, select the
-   W*aiting For Distribution* check box.
-#. Select a service that is ready for distribution.
+#. Sign in to SDC as Developer.
+#. From the SDC HOME page, click CATALOG and search for the service.
+#. Select the service that is *Ready for Distribution*.
+
+   |image2|
+
 #. Review the version history to verify that the correct version is
    selected.
 #. In the header, click *Distribute*.
 
-   The service moves from the Ready For Distribution folder to the
-   Distributed Services folder.
+   The service state changes to *Distributed*
+#. Continue with the step `Monitor Distribution`_
 
-#. From the Workspace pane, click *Distributed Services*.
-   All distributed services display.
-#. Select the service distributed in step 5 and click *Monitor*.
+
+.. _doc_guide_user_des_ser-dis-mon:
+
+Monitor Distribution
+--------------------
+
+**Steps**
+
+#. Sign in to SDC as Developer.
+#. From the SDC HOME page, click CATALOG and search for the service.
+#. Select the service that is in *Distributed* state.
+#. Click *Distribution* in the left pane.
    The Distribution Report displays.
-#. In the Distribution Report, navigate to the Component ID for the
+
+   |image3|
+
+#. In the Distribution Report, navigate to the Distribution ID for the
    service and click the adjacent down arrow.
    The report shows all components associated with the service and their
-   distribution statuses, such as DOWNLOAD_OK.
+   distribution statuses.
 #. Review the status of each component.
+#. If deploy errors are shown, the reason has to be investigated and the
+   Service can be *Redistributed*
+
+.. _doc_guide_user_des_ser-dis-dcae:
 
 Verify that the DCAE Blueprint is Deployed
 ------------------------------------------
@@ -134,4 +90,6 @@
 it must be available after completing the service distribution process
 and before beginning the instantiation process.
 
-.. |image1| image:: media/design_governance_workflow.png
+.. |image1| image:: media/sdc-service-distribution-workflow.png
+.. |image2| image:: media/sdc-service-distribute.png
+.. |image3| image:: media/sdc-service-distribute-monitor.png
diff --git a/docs/guides/onap-user/design/service-distribution/media/sdc-service-distribute-monitor.png b/docs/guides/onap-user/design/service-distribution/media/sdc-service-distribute-monitor.png
new file mode 100644
index 0000000..85c717f
--- /dev/null
+++ b/docs/guides/onap-user/design/service-distribution/media/sdc-service-distribute-monitor.png
Binary files differ
diff --git a/docs/guides/onap-user/design/service-distribution/media/sdc-service-distribute.png b/docs/guides/onap-user/design/service-distribution/media/sdc-service-distribute.png
new file mode 100644
index 0000000..d873850
--- /dev/null
+++ b/docs/guides/onap-user/design/service-distribution/media/sdc-service-distribute.png
Binary files differ
diff --git a/docs/guides/onap-user/design/service-distribution/media/sdc-service-distribution-workflow.png b/docs/guides/onap-user/design/service-distribution/media/sdc-service-distribution-workflow.png
new file mode 100644
index 0000000..16578cb
--- /dev/null
+++ b/docs/guides/onap-user/design/service-distribution/media/sdc-service-distribution-workflow.png
Binary files differ
diff --git a/docs/guides/onap-user/design/vfcreation/index.rst b/docs/guides/onap-user/design/vfcreation/index.rst
index e3e259c..14928bb 100644
--- a/docs/guides/onap-user/design/vfcreation/index.rst
+++ b/docs/guides/onap-user/design/vfcreation/index.rst
@@ -11,7 +11,7 @@
 
 **ONAP Component**: SDC
 
-**SDC user roles**: Designer, Tester
+**SDC user roles**: Designer
 
 |image1|
 
@@ -21,8 +21,7 @@
 - `Create a VF/PNF by VSP import`_
 - `Create a VF/PNF manually`_
 - `Update a VF/PNF [optional]`_
-- `Submit for testing`_
-- `Test a VF/PNF`_
+- `Certify VF/PNF`_
 
 .. _doc_guide_user_des_vf-cre_cre-imp:
 
@@ -46,8 +45,7 @@
 
 #. In the General section, complete all fields.
 
-   .. note:: Use the letters "VF" or "PNF" in the name to indicate the
-             component type.
+   |image10|
 
 #. Click *Create*.
 
@@ -55,37 +53,39 @@
      10 minutes.)
    - A message displays when creation is complete.
 
-#. Click *Check In* to save changes.
 
-   - A box displays for confirming the changes.
-
-#. Enter a comment and click *OK*.
-
-   - A message displays when the VF/PNF is checked in.
-
-#. [Optional]  At any time before submitting the VF/PNF for testing, click
+#. [Optional]  At any time before checking in the VF/PNF, click
    these options to update VF/PNF information:
 
-   .. note:: These tasks can be done only before submitting the VF/PNF for testing.
+   .. note:: These tasks can be done only before certifying the VF/PNF.
 
-   - **Icon** change the icon associated with the VF/PNF (vendor-supplied icons
-     are preferred)
+   - **General->Icon** change the icon associated with the VF/PNF
+     (vendor-supplied icons are preferred)
    - **Deployment Artifacts** download, view, modify, or change deployment
      artifacts (for example, the contents of the Heat .zip file, which contains
-     the Heat volume template, the license, etc.)
-   - **Information Artifacts** view or upload artifacts, such as test scripts, test
-     results, or the AIC questionnaire
+     the Heat volume template, the license, CDS Blueprints,...)
+   - **Information Artifacts** view or upload artifacts, such as test
+     scripts, test results, or the AIC questionnaire
    - **TOSCA Artifacts** view or upload the TOSCA model or the TOSCA template
-   - **Properties** define or update properties
    - **Composition** view or edit the graphical representation of the resource-level
      TOSCA model (generated from the Heat template)
    - **Activity Log** view activity related to assets associated with the VF/PNF
      (displays the action, date, user, status, and any comments related to each
      action)
    - **Deployment** view VF modules defined in the Heat template
-   - **Inputs** view inputs defined for the resource-level TOSCA model
+   - **Properties Assignment** define or update properties and input parameters
+     and policies
+   - **Req.& Capabilities** view and add requirements and capabilities
 
-#. After creating a VF/PNF, submit it for testing (see `Submit for testing`_).
+#. Click *Check In* to save changes.
+
+   - A box to enter comments for confirming the changes open.
+
+#. Enter a comment and click *OK*.
+
+   - A message displays when the VF/PNF is checked in and you are redirected
+     to the Home screen.
+#. After creating and checking a VF/PNF, certify it (see `Certify VF/PNF`_).
 
 .. _doc_guide_user_des_vf-cre_cre-man:
 
@@ -94,33 +94,34 @@
 
 **Steps**
 
-#. From the SDC HOME page, click the *Add VF* or *Add PNF*
+#. From the SDC HOME page, click the *ADD VF* or *ADD PNF*
 
-   |image9|
+   |image2|
 
 #. In the General section, complete all fields.
 
-#. Before submitting the VF/PNF for testing, click these
+#. Before check-in the VF/PNF, click these
    options to update VF/PNF information:
 
-   .. note:: These tasks can be done only before submitting the VF/PNF for testing.
+   .. note:: These tasks can be done only before certifying the VF/PNF.
 
-   - **Icon** change the icon associated with the VF/PNF (vendor-supplied icons are
-     preferred)
-   - **Deployment Artifacts** download, view, modify, or change VF/PNF deployment
+   - **General->Icon** change the icon associated with the VF/PNF
+     (vendor-supplied icons are preferred)
+   - **Deployment Artifacts** download, view, modify, or change deployment
      artifacts (for example, the contents of the Heat .zip file, which contains
-     the Heat volume template, the VF license, etc.)
-   - **Information Artifacts** view or upload artifacts, such as test scripts, test
-     results, or the AIC questionnaire
-   - **TOSCA Artifacts** view or download the TOSCA model or the TOSCA template
-   - **Properties** define or update properties
+     the Heat volume template, the license, CDS Blueprints,...)
+   - **Information Artifacts** view or upload artifacts, such as test
+     scripts, test results, or the AIC questionnaire
+   - **TOSCA Artifacts** view or upload the TOSCA model or the TOSCA template
    - **Composition** view or edit the graphical representation of the resource-level
      TOSCA model (generated from the Heat template)
    - **Activity Log** view activity related to assets associated with the VF/PNF
      (displays the action, date, user, status, and any comments related to each
      action)
    - **Deployment** view VF modules defined in the Heat template
-   - **Inputs** view inputs defined for the resource-level TOSCA model
+   - **Properties Assignment** define or update properties and input parameters
+     and policies
+   - **Req.& Capabilities** view and add requirements and capabilities
 
 #. Click *Create*.
 
@@ -130,14 +131,13 @@
 
 #. Click *Check In* to save changes.
 
-   - A box displays for confirming the changes.
+   - A box to enter comments for confirming the changes open.
 
 #. Enter a comment and click *OK*.
 
-   - A message displays when the is checked in.
-
-
-#. After creating a VF/PNF, submit it for testing (see `Submit for testing`_).
+   - A message displays when the VF/PNF is checked in and you are redirected
+     to the Home screen.
+#. After creating and checking a VF/PNF, certify it (see `Certify VF/PNF`_).
 
 
 .. _doc_guide_user_des_vf-cre_vf-upd:
@@ -146,8 +146,9 @@
 --------------------------
 
 - Update the VSP and other artifacts in a VF/PNF.
-- Upload a new version the VSP to the VF/PNF whenever the VSP is updated (see steps
-  3 to 5). Other reasons for updating a VF/PNF include:
+- Upload a new version the VSP to the VF/PNF whenever the VSP is updated
+  (see steps  3 to 5).
+- Other reasons for updating a VF/PNF include:
 
   - artifact changes at the VF/PNF level that need be uploaded, for example,
     changes to ENV values (see step 6)
@@ -159,20 +160,20 @@
 
 **Steps**
 
-#. From the SDC HOME page, click *CATALOG* and search for a VF/PNF.
+#. From the SDC HOME page, click *CATALOG* and search for the VF/PNF.
 
 #. In the General section, click *Check Out*.
-   The Select VSP field is displays.
+   The *VSP* field is displays.
 
-#. In the Select VSP field, click *Browse*.
-   The Import VSP box displays and shows the VSP that was used to create the VF/PNF.
+#. In the *VSP* field, click *Browse*.
+   The *Import VSP* box displays and shows the VSP that was used to create the VF/PNF.
 
 #. Expand the VSP field and click.
 
    |image4|
 
-#. Click |image5|
-   A progress bar displays. |image6|
+#. Click *Update VSP*
+   A progress bar displays.|image5|
 
 #. Click *Deployment Artifact* to edit, upload, or delete associated [Optional]
    deployment artifacts.
@@ -182,63 +183,48 @@
 
 #. Click *Check In* to save changes.
 
+   - A box to enter comments for confirming the changes open.
+
+#. Enter a comment and click *OK*.
+
+   - A message displays when the VF/PNF is checked in and you are redirected
+     to the Home screen.
 #. After updating the VF/PNF:
 
-   - Submit the VF/PNF for testing (see `Submit for testing`_).
-   - Update the VF/PNF version in any service that contains the VF/PNF
-     (see step 4 in Update a service [optional]).
+   - Certify it (see `Certify VF/PNF`_).
+   - Update the VF/PNF version in any service that contains the VF/PNF,
+     please go to :ref:`doc_guide_user_des_ser-upd_serv`
 
 .. _doc_guide_user_des_vf-cre_sub-tst:
 
-Submit for testing
-------------------
+Certify VF/PNF
+--------------
 
 **Prerequisites:** `Create a VF/PNF by VSP import`_ or
 `Create a VF/PNF manually`_
 
 **Steps**
 
-#. When a VF/PNF is ready for testing, click *CATALOG* and service for the
-   VF/PNF.
-#. Click the VF/PNF and click *Submit for Testing*.
+#. When a VF/PNF is ready for certification,
+   click *CATALOG* and search for the checked-in VF/PNF.
+#. Click the VF/PNF and click *Certify*.
 
    |image7|
 
    |image8|
 
-#. Enter a message for the testers asking that they begin service certification
-   and click *OK*.
+#. Enter a comment and click *OK*.
 
-   The default mail client launches with a draft email containing the message.
+#. A Message appears, that the VF/PNF is certified.
 
-#. Add the email addresses of the people on the Certification Group for this
-   site with the *Tester* role and send the email.
 
-.. _doc_guide_user_des_vf-cre_tst-vf:
-
-Test a VF/PNF
--------------
-
-Test the design and artifacts of a VF/PNF.
-
-**Prerequisites:** `Submit for testing`_
-
-**Steps**
-
-#. Sign in to SDC as a *Tester*.
-#. From the HOME page, select *Ready For Testing* under Active Projects.
-#. In the right pane, click the VF/PNF.
-#. Click *Start Testing*.
-#. Test the VF/PNF.
-#. When testing is complete, click *Accept*.
-
-.. |image1| image:: media/design_vf_workflow.png
-.. |image2| image:: media/SDC-Import.png
-.. |image3| image:: media/image2017-1-27_11-14-3.png
-.. |image4| image:: media/image2017-1-27_11-17-18.png
+.. |image1| image:: media/sdc-vf-workflow.png
+.. |image2| image:: media/sdc-home.png
+.. |image3| image:: media/sdc-Import.png
+.. |image4| image:: media/sdc-vsp-update.png
 .. |image5| image:: media/sdc_artifact_update.png
 .. |image6| image:: media/design_vf_updatevspmessage.png
-.. |image7| image:: media/image2017-1-27_11-20-13.png
-.. |image8| image:: media/image2017-1-27_11-21-4.png
+.. |image7| image:: media/sdc-vf-general-certify.png
+.. |image8| image:: media/sdc-vf-certify-confirm.png
 .. |image9| image:: media/SDC-Add.png
-
+.. |image10| image:: media/sdc-vf-general.png
diff --git a/docs/guides/onap-user/design/vfcreation/media/sdc-Import.png b/docs/guides/onap-user/design/vfcreation/media/sdc-Import.png
new file mode 100644
index 0000000..e253f29
--- /dev/null
+++ b/docs/guides/onap-user/design/vfcreation/media/sdc-Import.png
Binary files differ
diff --git a/docs/guides/onap-user/design/vfcreation/media/sdc-home.png b/docs/guides/onap-user/design/vfcreation/media/sdc-home.png
new file mode 100644
index 0000000..3b14c99
--- /dev/null
+++ b/docs/guides/onap-user/design/vfcreation/media/sdc-home.png
Binary files differ
diff --git a/docs/guides/onap-user/design/vfcreation/media/sdc-vf-certify-confirm.png b/docs/guides/onap-user/design/vfcreation/media/sdc-vf-certify-confirm.png
new file mode 100644
index 0000000..73ba1d2
--- /dev/null
+++ b/docs/guides/onap-user/design/vfcreation/media/sdc-vf-certify-confirm.png
Binary files differ
diff --git a/docs/guides/onap-user/design/vfcreation/media/sdc-vf-general-certify.png b/docs/guides/onap-user/design/vfcreation/media/sdc-vf-general-certify.png
new file mode 100644
index 0000000..cf87fab
--- /dev/null
+++ b/docs/guides/onap-user/design/vfcreation/media/sdc-vf-general-certify.png
Binary files differ
diff --git a/docs/guides/onap-user/design/vfcreation/media/sdc-vf-general.png b/docs/guides/onap-user/design/vfcreation/media/sdc-vf-general.png
new file mode 100644
index 0000000..efd6d7d
--- /dev/null
+++ b/docs/guides/onap-user/design/vfcreation/media/sdc-vf-general.png
Binary files differ
diff --git a/docs/guides/onap-user/design/vfcreation/media/sdc-vf-workflow.png b/docs/guides/onap-user/design/vfcreation/media/sdc-vf-workflow.png
new file mode 100644
index 0000000..a11f2d2
--- /dev/null
+++ b/docs/guides/onap-user/design/vfcreation/media/sdc-vf-workflow.png
Binary files differ
diff --git a/docs/guides/onap-user/design/vfcreation/media/sdc-vsp-update.png b/docs/guides/onap-user/design/vfcreation/media/sdc-vsp-update.png
new file mode 100644
index 0000000..22caa0a
--- /dev/null
+++ b/docs/guides/onap-user/design/vfcreation/media/sdc-vsp-update.png
Binary files differ
