diff --git a/docs/sections/services/son-handler/installation.rst b/docs/sections/services/son-handler/installation.rst
index c8b73a8..3c0d5ec 100644
--- a/docs/sections/services/son-handler/installation.rst
+++ b/docs/sections/services/son-handler/installation.rst
@@ -59,7 +59,7 @@
  - Login to DCAE Dashboard (https://{k8s-nodeip}:30418/ccsdk-app/login_external.htm)
  - Go to Inventory --> Blueprints
  - Click on Deploy Action for son-handler blueprint
- - Override the value of 'tag_version' to 'nexus3.onap.org:10001/onap/org.onap.dcaegen2.services.son-handler:2.0.4' and click deploy.
+ - Override the value of 'tag_version' to 'nexus3.onap.org:10001/onap/org.onap.dcaegen2.services.son-handler:2.1.1' and click deploy.
  - Deployment logs can be viewed under Deployments section 
 
 2.Using cloudify commands 
diff --git a/docs/sections/services/ves-http/stnd-defined-validation.rst b/docs/sections/services/ves-http/stnd-defined-validation.rst
index c4184e4..d2a6854 100644
--- a/docs/sections/services/ves-http/stnd-defined-validation.rst
+++ b/docs/sections/services/ves-http/stnd-defined-validation.rst
@@ -7,6 +7,107 @@
 Description
 -----------
 
+The target of that development was to allow collection of events defined by standards organizations using VES Collector,
+and providing them for consumption by analytics applications running on top of DCAE platform. The following features
+have been implemented:
+
+- Event routing, based on a new CommonHeader field "stndDefinedNamespace"
+- Standards-organization defined events can be included using a dedicated stndDefinedFields.data property
+- Standards-defined events can be validated using openAPI descriptions provided by standards organizations, and indicated in stndDefinedFields.schemaReference
+
+StndDefined properties
+----------------------
+
+There are 5 additional properties related to stndDefined validation in collector.properties file.
+
++----------------------------------------------+--------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------+
+| Name                                         | Description                                                                    | Example                                                                                              |
++==============================================+================================================================================+======================================================================================================+
+| collector.externalSchema.checkflag           | Flag is responsible for turning on/off stndDefined data validation.            | -1 or 1                                                                                              |
+|                                              | By default this flag is set to 1, which means that the validation is enabled.  |                                                                                                      |
+|                                              | In case flag is set to -1, validation is disabled.                             |                                                                                                      |
++----------------------------------------------+--------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------+
+| collector.externalSchema.mappingFileLocation | This should be a local filesystem path to file with mappings of public URLs    | /opt/app/VESCollector/etc/externalRepo/schema-map.json                                               |
+|                                              | to local URLs.                                                                 |                                                                                                      |
++----------------------------------------------+--------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------+
+| collector.externalSchema.schemasLocation     | Schemas location is a directory context for localURL paths set in mapping file.| /opt/app/VESCollector/etc/externalRepo/ ,                                                            |
+|                                              | Result path of schema is collector.externalSchema.schemasLocation + localURL.  | when first mapping from example mapping file below this table is taken, validator will look for      |
+|                                              | This path is not related to mapping file path and may point to any location.   | schema under the path:                                                                               |
+|                                              |                                                                                | /opt/app/VESCollector/etc/externalRepo/3gpp/rep/sa5/data-models/blob/REL-16/OpenAPI/faultMnS.yaml    |
++----------------------------------------------+--------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------+
+| event.externalSchema.schemaRefPath           | This is an internal path from validated JSON. It should define which field     | $.event.stndDefinedFields.schemaReference                                                            |
+|                                              | will be taken as public schema reference, which is later mapped.               |                                                                                                      |
++----------------------------------------------+--------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------+
+| event.externalSchema.stndDefinedDataPath     | This is internal path from validated JSON.                                     | $.event.stndDefinedFields.data                                                                       |
+|                                              | It should define which field will be validated.                                |                                                                                                      |
++----------------------------------------------+--------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------+
+
+Format of the schema mapping file is a JSON file with list of mappings, as shown in the example below.
+
+.. code-block:: json
+
+    [
+      {
+        "publicURL": "https://forge.3gpp.org/rep/sa5/data-models/tree/SA88-Rel16/OpenAPI/faultMnS.yaml",
+        "localURL": "3gpp/rep/sa5/data-models/blob/REL-16/OpenAPI/faultMnS.yaml"
+      },
+      {
+        "publicURL": "https://forge.3gpp.org/rep/sa5/data-models/tree/SA88-Rel16/OpenAPI/heartbeatNtf.yaml",
+        "localURL": "3gpp/rep/sa5/data-models/blob/REL-16/OpenAPI/heartbeatNtf.yaml"
+      },
+      {
+        "publicURL": "https://forge.3gpp.org/rep/sa5/data-models/tree/SA88-Rel16/OpenAPI/PerDataFileReportMnS.yaml",
+        "localURL": "3gpp/rep/sa5/data-models/blob/REL-16/OpenAPI/PerDataFileReportMnS.yaml"
+      },
+      {
+        "publicURL": "https://forge.3gpp.org/rep/sa5/data-models/tree/SA88-Rel16/OpenAPI/provMnS.yaml",
+        "localURL": "3gpp/rep/sa5/data-models/blob/REL-16/OpenAPI/provMnS.yaml"
+      }
+    ]
+
+Properties configuration via Cloudify
+-------------------------------------
+
+Collector.properties content may be overridden when deploying VES Collector via Cloudify. To keep VES settings
+consistent listed above properties has been updated in the VES Collector Cloudify blueprint (in blueprints/k8s-ves.yaml
+file under dcaegen2/platform/blueprints project) and in componentspec file (in dpo/spec/vescollector-componentspec.json
+file in VES project) which may be used for generation of VES Collector Cloudify blueprints in some scenarios.
+
+The following table shows new stndDefined related properties added to VES Collector Cloudify blueprint. These properties
+represent fields from collector.properties file, but also contain configuration of DMaaP topic URLs used for stndDefined
+events routing. It has been specified in the table which of these properties may be configured via inputs during
+blueprint deployment.
+
+**NOTE**: Keep in mind that some properties may use relative path. It is relative to default VES Collector context which
+is: */opt/app/VESCollector/*. Final path of etc. *collector.externalSchema.schemasLocation* will be:
+*/opt/app/VESCollector/etc/externalRepo/*. Setting absolute path to these properties is also acceptable and won't
+generate error.
+
++----------------------------------------------+--------+---------+---------------------------------------------------------------------------------------------------------------+
+| Property name                                | Input? | Type    | Default value                                                                                                 |
++==============================================+========+=========+===============================================================================================================+
+| collector.externalSchema.checkflag           | Yes    | Integer | 1                                                                                                             |
++----------------------------------------------+--------+---------+---------------------------------------------------------------------------------------------------------------+
+| collector.externalSchema.mappingFileLocation | Yes    | String  | ./etc/externalRepo/schema-map.json                                                                            |
++----------------------------------------------+--------+---------+---------------------------------------------------------------------------------------------------------------+
+| collector.externalSchema.schemasLocation     | Yes    | String  | ./etc/externalRepo/                                                                                           |
++----------------------------------------------+--------+---------+---------------------------------------------------------------------------------------------------------------+
+| event.externalSchema.schemaRefPath           | No     | String  | $.event.stndDefinedFields.schemaReference                                                                     |
++----------------------------------------------+--------+---------+---------------------------------------------------------------------------------------------------------------+
+| event.externalSchema.stndDefinedDataPath     | No     | String  | $.event.stndDefinedFields.data                                                                                |
++----------------------------------------------+--------+---------+---------------------------------------------------------------------------------------------------------------+
+| ves_3gpp_fault_supervision_publish_url       | Yes    | String  | http://message-router.onap.svc.cluster.local:3904/events/unauthenticated.SEC_3GPP_FAULTSUPERVISION_OUTPUT     |
++----------------------------------------------+--------+---------+---------------------------------------------------------------------------------------------------------------+
+| ves_3gpp_provisioning_publish_url            | Yes    | String  | http://message-router.onap.svc.cluster.local:3904/events/unauthenticated.SEC_3GPP_PROVISIONING_OUTPUT         |
++----------------------------------------------+--------+---------+---------------------------------------------------------------------------------------------------------------+
+| ves_3gpp_hearbeat_publish_url                | Yes    | String  | http://message-router.onap.svc.cluster.local:3904/events/unauthenticated.SEC_3GPP_HEARTBEAT_OUTPUT            |
++----------------------------------------------+--------+---------+---------------------------------------------------------------------------------------------------------------+
+| ves_3gpp_performance_assurance_publish_url   | Yes    | String  | http://message-router.onap.svc.cluster.local:3904/events/unauthenticated.SEC_3GPP_PERFORMANCEASSURANCE_OUTPUT |
++----------------------------------------------+--------+---------+---------------------------------------------------------------------------------------------------------------+
+
+Validation overview
+-------------------
+
 This mechanism can be used to validate any JSON content incoming as JsonNode using OpenAPI standardized schemas.
 During validation externally located schemas are mapped to local schema files.
 
@@ -27,56 +128,6 @@
 The value of the 'stndDefinedNamespace' field in any incoming stndDefined JSON event is used to match the topic from
 property *collector.dmaap.streamid*.
 
-StndDefined properties
-----------------------
-
-There are 5 additional properties related to stndDefined validation in collector.properties file.
-
-+----------------------------------------------+--------------------------------------------------------------------------------+--------------------------------------------------------------------------------+-------------------------------------------------------------------------------+
-| Name                                         | Description                                                                    | Example                                                                        | Note                                                                          |
-+==============================================+================================================================================+================================================================================+===============================================================================+
-| collector.externalSchema.checkflag           | Flag is responsible for turning on/off stndDefined data validation.            | -1 or 1                                                                        |                                                                               |
-|                                              | By default this flag is set to 1, which means that the validation is enabled.  |                                                                                |                                                                               |
-|                                              | In case flag is set to -1, validation is disabled.                             |                                                                                |                                                                               |
-+----------------------------------------------+--------------------------------------------------------------------------------+--------------------------------------------------------------------------------+-------------------------------------------------------------------------------+
-| collector.externalSchema.mappingFileLocation | This should be a local filesystem path to file with mappings of public URLs    | etc/externalRepo/schema-map.json                                               |                                                                               |
-|                                              | to local URLs.                                                                 |                                                                                |                                                                               |
-+----------------------------------------------+--------------------------------------------------------------------------------+--------------------------------------------------------------------------------+-------------------------------------------------------------------------------+
-| collector.externalSchema.schemasLocation     | Schemas location is a directory under which stndDefined validator will search  | ./etc/externalRepo/ and first mapping from example mappingFile below is taken, |                                                                               |
-|                                              | for local schemas.                                                             | validator will look for schema under the path:                                 |                                                                               |
-|                                              |                                                                                | ./etc/externalRepo/3gpp/rep/sa5/data-models/blob/REL-16/OpenAPI/faultMnS.yaml  |                                                                               |
-+----------------------------------------------+--------------------------------------------------------------------------------+--------------------------------------------------------------------------------+-------------------------------------------------------------------------------+
-| event.externalSchema.schemaRefPath           | This is an internal path from validated JSON. It should define which field     | /event/stndDefinedFields/schemaReference                                       | In SDK version 1.4.2 this path doesn’t use JSON path notation (with . signs). |
-|                                              | will be taken as public schema reference, which is later mapped.               |                                                                                | It might change in further versions                                           |
-+----------------------------------------------+--------------------------------------------------------------------------------+--------------------------------------------------------------------------------+-------------------------------------------------------------------------------+
-| event.externalSchema.stndDefinedDataPath     | This is internal path from validated JSON.                                     | /event/stndDefinedFields/data                                                  | In SDK version 1.4.2 this path doesn’t use JSON path notation (with . signs). |
-|                                              | It should define which field will be validated.                                |                                                                                | It might change in further versions                                           |
-+----------------------------------------------+--------------------------------------------------------------------------------+--------------------------------------------------------------------------------+-------------------------------------------------------------------------------+
-
-Format of the schema mapping file is a JSON file with list of mappings, as shown in the example below.
-
-.. code-block:: json
-
-    [
-        {
-            "publicURL": "https://forge.3gpp.org/rep/sa5/data-models/blob/REL-16/OpenAPI/faultMnS.yaml",
-            "localURL": "3gpp/rep/sa5/data-models/blob/REL-16/OpenAPI/faultMnS.yaml"
-        },
-        {
-            "publicURL": "https://forge.3gpp.org/rep/sa5/data-models/blob/REL-16/OpenAPI/heartbeatNtf.yaml",
-            "localURL": "3gpp/rep/sa5/data-models/blob/REL-16/OpenAPI/heartbeatNtf.yaml"
-        },
-        {
-            "publicURL": "https://forge.3gpp.org/rep/sa5/data-models/blob/REL-16/OpenAPI/PerDataFileReportMnS.yaml",
-            "localURL": "3gpp/rep/sa5/data-models/blob/REL-16/OpenAPI/PerDataFileReportMnS.yaml"
-        },
-        {
-            "publicURL": "https://forge.3gpp.org/rep/sa5/data-models/blob/master/OpenAPI/provMnS.yaml",
-            "localURL": "3gpp/rep/sa5/data-models/blob/REL-16/OpenAPI/provMnS.yaml"
-        }
-    ]
-
-
 Requirements for stndDefined validation
 ---------------------------------------
 
@@ -107,22 +158,22 @@
 - Field of event referenced under the property event.externalSchema.schemaRefPath has publicURL which is not mapped in the schemas mappings
 - Field defining public schema in event (by default */event/stndDefinedFields/schemaReference*) after "#" has non existing reference in schema file
 
-Schemas repository description
-------------------------------
+Schema repository description
+-----------------------------
 
 Schemas and mapping file location might be configured to any local directory through properties in collector.properties
 as described in 'StndDefined properties' section.
 
-By default schemas repository is located under *etc/externalSchema* directory, as well as schemas mapping file called
-*schema-map.json*. There are files stored in the project repository which are schemas from 3GPP organisation. Every
-organisation which adds or mounts external schemas should store them in folder named by organisation
-name. Further folders structure may be whatever as long as schemas are correctly referenced in the mapping file.
+By default schemas repository is located under */opt/app/VESCollector/etc/externalSchema* directory, as well as schemas mapping file called
+*schema-map.json*. Every organisation which adds or mounts external schemas should store them in folder named by
+organisation name. Further folders structure may be whatever as long as schemas are correctly referenced in the mapping
+file.
 
-Sample directory tree of *etc* directory:
+Sample directory tree of */opt/app/VESCollector/etc* directory:
 
 .. code-block:: text
 
-    etc
+    /opt/app/VESCollector/etc
     ├── ...
     └── externalRepo
         ├── schema-map.json
@@ -130,8 +181,8 @@
             └── rep
                 └── sa5
                     └── data-models
-                        └── blob
-                            └── REL-16
+                        └── tree
+                            └── SA88-Rel16
                                 └── OpenAPI
                                     ├── faultMnS.yaml
                                     ├── heartbeatNtf.yaml
@@ -141,13 +192,13 @@
 Routing of stndDefined domain events
 ------------------------------------
 
-All events, expect those with 'stndDefined' domain, are routed to DMaaP topics basing on domain value. Events with
+All events, except those with 'stndDefined' domain, are routed to DMaaP topics based on domain value. Events with
 'stndDefined' domain are sent to proper topic basing on field 'stndDefinedNamespace'.
 
 This is the only difference from standard event routing, specific for 'stndDefined' domain. As in every other event
 routing value is being mapped for specific DMaaP stream. Stream ID to DMaaP channels mappings are located in
-*etc/collector.properties* file under property *collector.dmaap.streamid*. Channels descriptions are in
-*etc/DmaapConfig.json*, where destination DMaaP topics are selected.
+*/opt/app/VESCollector/etc/collector.properties* file under property *collector.dmaap.streamid*. Channels descriptions are in
+*/opt/app/VESCollector/etc/DmaapConfig.json*, where destination DMaaP topics are selected.
 
 With stndDefined domain managment 4 new mappings were added. Their routing has been described in the table below:
 
