diff --git a/cps-service/src/test/groovy/org/onap/cps/api/impl/E2ENetworkSliceSpec.groovy b/cps-service/src/test/groovy/org/onap/cps/api/impl/E2ENetworkSliceSpec.groovy
index a09166d..aa54a99 100755
--- a/cps-service/src/test/groovy/org/onap/cps/api/impl/E2ENetworkSliceSpec.groovy
+++ b/cps-service/src/test/groovy/org/onap/cps/api/impl/E2ENetworkSliceSpec.groovy
@@ -150,7 +150,7 @@
             def yangResourcesNameToContentMap = TestUtils.getYangResourcesAsMap(
                     'ietf/ietf-inet-types@2013-07-15.yang',
                     'ietf/ietf-yang-types@2013-07-15.yang',
-                    'e2e/basic/cps-ran-schema-model@2021-01-28.yang'
+                    'e2e/basic/cps-ran-schema-model@2021-05-19.yang'
             )
         and : 'json data'
             def jsonData = TestUtils.getResourceFileContent('e2e/basic/cps-ran-schema-model-data-v4.json')
diff --git a/cps-service/src/test/resources/e2e/basic/cps-ran-schema-model-data-v4.json b/cps-service/src/test/resources/e2e/basic/cps-ran-schema-model-data-v4.json
index 0925eef..fba875b 100644
--- a/cps-service/src/test/resources/e2e/basic/cps-ran-schema-model-data-v4.json
+++ b/cps-service/src/test/resources/e2e/basic/cps-ran-schema-model-data-v4.json
@@ -4,9 +4,9 @@
       {
         "idNearRTRIC": "11",
         "attributes":{
-        "ranNFNSSIIdList":[
-        "ac8ca1a9-e1ec-4480-8720-c74e92566885"
-        ]
+          "ranNFNSSIIdList":[
+            "ac8ca1a9-e1ec-4480-8720-c74e92566885"
+          ]
         },
         "GNBCUUPFunction": [
           {
diff --git a/cps-service/src/test/resources/e2e/basic/cps-ran-schema-model@2021-01-28.yang b/cps-service/src/test/resources/e2e/basic/cps-ran-schema-model@2021-05-19.yang
similarity index 90%
rename from cps-service/src/test/resources/e2e/basic/cps-ran-schema-model@2021-01-28.yang
rename to cps-service/src/test/resources/e2e/basic/cps-ran-schema-model@2021-05-19.yang
index 224e884..5fd292a 100644
--- a/cps-service/src/test/resources/e2e/basic/cps-ran-schema-model@2021-01-28.yang
+++ b/cps-service/src/test/resources/e2e/basic/cps-ran-schema-model@2021-05-19.yang
@@ -3,14 +3,14 @@
   namespace "org:onap:ccsdk:features:sdnr:northbound:cps-ran-schema-model";
   prefix rn;
 
-   import ietf-inet-types {
+  import ietf-inet-types {
     prefix inet;
   }
   import ietf-yang-types {
     prefix yang;
   }
 
-        organization
+  organization
     "Open Network Automation Platform - ONAP
      <https://www.onap.org>";
   contact
@@ -39,6 +39,13 @@
      See the License for the specific language governing permissions and
      limitations under the License.";
 
+     revision 2021-05-19 {
+       description
+         "Added support for OOF PCI SON Use case";
+       reference
+         "https://wiki.onap.org/display/DW/CPS+APIs";
+     }
+
   revision 2021-01-28 {
     description
       "CPS RAN Network YANG Model for ONAP/O-RAN POC";
@@ -855,7 +862,7 @@
           reference "gNB ID in 3GPP TS 38.300, Global gNB ID in 3GPP TS 38.413";
         }
 
-        list pLMNInfoList {
+  	list pLMNInfoList {
           uses PLMNInfo;
           key "mcc mnc";
           description "The PLMNInfoList is a list of PLMNInfo data type. It defines which PLMNs that can be served by the nearRTRIC.";
@@ -875,6 +882,7 @@
         standardized (like RRMPolicyRatio) or as vendor specific, by inheriting from the
         abstract RRMPolicy_ IOC. For details see subclause 4.3.36.";
     }
+
     leaf-list ranNFNSSIIdList{
                 type string;
                 config true;
@@ -886,17 +894,17 @@
 
 
 
-        grouping Configuration{
-                leaf configParameter{
-                        type string;
-                        description "Type of the configuration parameter";
+  	grouping Configuration{
+  		leaf configParameter{
+  			type string;
+  			description "Type of the configuration parameter";
         }
-                leaf configValue{
-                        type int64;
-                        description "Identifies the configuration to be done for the network elements under the NearRTRIC";
+  		leaf configValue{
+  			type int64;
+  			description "Identifies the configuration to be done for the network elements under the NearRTRIC";
 
-                }
-        }
+  		}
+  	}
 
 
   grouping GNBDUFunctionGroup {
@@ -994,6 +1002,31 @@
       reference
         "NCI in 3GPP TS 38.300";
     }
+
+    leaf siteLatitude {
+      type decimal64 {
+        fraction-digits 4;
+        range "-90.0000..+90.0000";
+      }
+      description "The latitude of the site where the ManagedFunction
+        instance resides, based on World Geodetic System (1984 version)
+        global reference frame (WGS 84). Positive values correspond to
+        the northern hemisphere. This attribute is optional in case of
+        BTSFunction and RNCFunction instance(s).";
+    }
+
+    leaf siteLongitude {
+      type decimal64 {
+        fraction-digits 4;
+        range "-180.0000..+180.0000";
+      }
+      description "The longitude of the site where the ManagedFunction
+        instance resides, based on World Geodetic System (1984 version)
+        global reference frame (WGS 84). Positive values correspond to
+        degrees east of 0 degrees longitude. This attribute is optional in
+        case of BTSFunction and RNCFunction instance(s).";
+    }
+
     list pLMNInfoList {
       key "mcc mnc";
       min-elements 1;
@@ -1085,21 +1118,21 @@
 
 
   grouping sNSSAIConfig{
-        leaf sNssai {
+	leaf sNssai {
         type string;
         description "s-NSSAI of a network slice.";
-           reference "3GPP TS 23.003";
+	   reference "3GPP TS 23.003";
       }
-         leaf status {
+ 	 leaf status {
         type string;
         description "status of s-NSSAI";
       }
-        list configData{
-                uses Configuration;
-                key "configParameter";
-                description "List of configurations to be done at the network elements";
-        }
-        }
+	list configData{
+		uses Configuration;
+		key "configParameter";
+		description "List of configurations to be done at the network elements";
+	}
+	}
 
   grouping RRMPolicy_Group {
     description
@@ -1290,6 +1323,23 @@
     }
   } // grouping NRCellCUGroup
 
+  grouping RegionNRCellCUMappingGroup {
+    description
+      "Represents the NRCellCU IOC.";
+    reference
+      "3GPP TS 28.541";
+    leaf cellLocalId {
+      type int32 {
+        range "0..16383";
+      }
+      mandatory false;
+      description
+        "Identifies an NR cell of a gNB. Together with corresponding
+         gNB ID it forms the NR Cell Identifier (NCI).";
+    }
+
+  } // grouping RegionNRCellCUMappingGroup
+
   grouping NRCellRelationGroup {
     description
       "Represents the NRCellRelation IOC.";
@@ -1304,6 +1354,17 @@
     }
   } // grouping
 
+  typedef RegionId {
+    type union {
+      type uint8;
+      type string {
+        length 8;
+      }
+    }
+    reference "similar to clause 2.10.1 of 3GPP TS 23.003";
+  }
+
+
   // container for RAN Network
 
   container cps-ran-schema {
@@ -1312,6 +1373,56 @@
       relationships among O-RAN managed elements for the
       purposes of storing in Configuration and Persistence
       ONAP system ";
+
+    list Regions {
+      key "regionId"; // list Regions
+      description
+        "A list of regions in the RAN network to map to mutually exclusive NRCellCU's";
+      leaf regionId {
+        type RegionId;
+      }
+      container cps-region-cell-mapping {
+        list NRCellCU {
+          key "idNRCellCU";
+          description
+            "Represents the information required by CU that is
+             responsible for the management of inter-cell mobility and neighbour
+             relations via ANR.";
+          reference
+            "3GPP TS 28.541";
+          leaf idNRCellCU {
+            type string;
+            description
+              "TODO";
+          }
+          container attributes {
+            description
+              "TODO";
+            uses RegionNRCellCUMappingGroup;
+          }
+          list NRCellRelation {
+            key "idNRCellRelation";
+            description
+              "Represents a neighbour cell relation from a source cell
+               to a target cell, where the target cell is an NRCellCU or
+               ExternalNRCellCU instance.";
+            reference
+              "3GPP TS 28.541";
+            leaf idNRCellRelation {
+              type string;
+              description
+                "TODO";
+            }
+            container attributes {
+              description
+                "TODO";
+              uses NRCellRelationGroup;
+            }
+          } // list NRCellRelation
+        }
+      }
+    }
+
     list NearRTRIC {
       key "idNearRTRIC"; // list GNBCUCPFunction
       description
