diff --git a/models/tapi/src/main/yang/tapi-common@2018-03-07.yang b/models/tapi/src/main/yang/tapi-common@2018-03-07.yang
index 05c668b..f0a6f36 100644
--- a/models/tapi/src/main/yang/tapi-common@2018-03-07.yang
+++ b/models/tapi/src/main/yang/tapi-common@2018-03-07.yang
@@ -2,10 +2,10 @@
     namespace "urn:onf:otcc:yang:tapi-common";
     prefix tapi-common;
     organization "ONF OTCC (Open Transport Configuration & Control) Project";
-    contact "
-        Project Web: <https://wiki.opennetworking.org/display/OTCC/TAPI>
-        Project List: <mailto:transport-api@opennetworking.org>
-        Editor: Karthik Sethuraman
+    contact "
+        Project Web: <https://wiki.opennetworking.org/display/OTCC/TAPI>
+        Project List: <mailto:transport-api@opennetworking.org>
+        Editor: Karthik Sethuraman
                 <mailto:karthik.sethuraman@necam.com>";
     description "
         This module contains TAPI Common Model definitions.
@@ -14,11 +14,11 @@
         License: This module is distributed under the Apache License 2.0
         ";
     revision 2018-03-07 {
-        description "ONF Transport API version 2.0.2
-        This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool version .
-        <https://wiki.opennetworking.org/display/OIMT/IISOMI>
+        description "ONF Transport API version 2.0.2
+        This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool version .
+        <https://wiki.opennetworking.org/display/OIMT/IISOMI>
         Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/change-log.md>";
-        reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
+        reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
                   <https://github.com/OpenNetworkingFoundation/TAPI/tree/develop/UML>";
     }
 
@@ -30,7 +30,9 @@
             type leafref {
                 path '/tapi-common:context/tapi-common:service-interface-point/tapi-common:uuid';
             }
+            description "none";
         }
+        description "none";
     }
 
     /***********************
@@ -276,13 +278,13 @@
                 }
                 enum POTENTIAL_AVAILABLE {
                     description "The supporting resources are present in the network but are shared with other clients; or require further configuration before they can be used; or both.
-                        o    When a potential resource is configured and allocated to a client it is moved to the “installed” state for that client.
-                        o    If the potential resource has been consumed (e.g. allocated to another client) it is moved to the “planned” state for all other clients.";
+                        o    When a potential resource is configured and allocated to a client it is moved to the installed state for that client.
+                        o    If the potential resource has been consumed (e.g. allocated to another client) it is moved to the planned state for all other clients.";
                 }
                 enum POTENTIAL_BUSY {
                     description "The supporting resources are present in the network but are shared with other clients; or require further configuration before they can be used; or both.
-                        o    When a potential resource is configured and allocated to a client it is moved to the “installed” state for that client.
-                        o    If the potential resource has been consumed (e.g. allocated to another client) it is moved to the “planned” state for all other clients.";
+                        o    When a potential resource is configured and allocated to a client it is moved to the installed state for that client.
+                        o    If the potential resource has been consumed (e.g. allocated to another client) it is moved to the planned state for all other clients.";
                 }
                 enum INSTALLED {
                     description "The resource is present in the network and is capable of providing the service expected.";
diff --git a/models/tapi/src/main/yang/tapi-connectivity@2018-03-07.yang b/models/tapi/src/main/yang/tapi-connectivity@2018-03-07.yang
index 5a03060..7c6867c 100644
--- a/models/tapi/src/main/yang/tapi-connectivity@2018-03-07.yang
+++ b/models/tapi/src/main/yang/tapi-connectivity@2018-03-07.yang
@@ -11,10 +11,10 @@
         prefix tapi-path-computation;
     }
     organization "ONF OTCC (Open Transport Configuration & Control) Project";
-    contact "
-        Project Web: <https://wiki.opennetworking.org/display/OTCC/TAPI>
-        Project List: <mailto:transport-api@opennetworking.org>
-        Editor: Karthik Sethuraman
+    contact "
+        Project Web: <https://wiki.opennetworking.org/display/OTCC/TAPI>
+        Project List: <mailto:transport-api@opennetworking.org>
+        Editor: Karthik Sethuraman
                 <mailto:karthik.sethuraman@necam.com>";
     description "
         This module contains TAPI Connectivity Model definitions.
@@ -22,11 +22,11 @@
         Copyright (c) 2018 Open Networking Foundation (ONF). All rights reserved.
         License: This module is distributed under the Apache License 2.0";
     revision 2018-03-07 {
-        description "ONF Transport API version 2.0.2
-        This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool version .
-        <https://wiki.opennetworking.org/display/OIMT/IISOMI>
+        description "ONF Transport API version 2.0.2
+        This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool version .
+        <https://wiki.opennetworking.org/display/OIMT/IISOMI>
         Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/change-log.md>";
-        reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
+        reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
                   <https://github.com/OpenNetworkingFoundation/TAPI/tree/develop/UML>";
     }
     augment "/tapi-common:context" {
@@ -39,23 +39,37 @@
     }
 
     /*************************
-    * definitions of refrences
+    * definitions of references
     *************************/
     grouping connectivity-service-ref {
         leaf connectivity-service-id {
             type leafref {
                 path '/tapi-common:context/tapi-connectivity:connectivity-service/tapi-connectivity:uuid';
             }
+            description "none";
         }
+        description "none";
     }
 
+    grouping connectivity-service-end-point-ref {
+    	uses connectivity-service-ref;
+    	leaf connectivity-service-end-point-id {
+	    	type leafref {
+	            path '/tapi-common:context/tapi-connectivity:connectivity-service/tapi-connectivity:end-point/tapi-connectivity:local-id';
+	        }
+	    	description "none";
+    	}
+    	description "none";
+    }
     grouping connection-end-point-ref {
         uses tapi-topology:owned-node-edge-point-ref;
         leaf connection-end-point-id {
             type leafref {
                 path '/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:owned-node-edge-point/tapi-connectivity:connection-end-point/tapi-connectivity:uuid';
             }
+            description "none";
         }
+        description "none";
     }
 
     grouping connection-ref {
@@ -63,7 +77,9 @@
             type leafref {
                 path '/tapi-common:context/tapi-connectivity:connection/tapi-connectivity:uuid';
             }
+            description "none";
         }
+        description "none";
     }
 
     grouping switch-control-ref {
@@ -72,12 +88,25 @@
             type leafref {
                 path '/tapi-common:context/tapi-connectivity:connection/tapi-connectivity:switch-control/tapi-connectivity:uuid';
             }
+            description "none";
         }
+        description "none";
+    }
+    
+    grouping route-ref {
+    	uses connection-ref;
+        leaf route-id {
+            type leafref {
+                path '/tapi-common:context/tapi-connectivity:connection/tapi-connectivity:route/tapi-connectivity:local-id';
+            }
+            description "none";
+        }
+        description "none";
     }
 
     /***********************
     * package object-classes
-    **********************/
+    **********************/ 
         grouping connection {
             list connection-end-point {
                 uses connection-end-point-ref;
@@ -86,13 +115,12 @@
                 min-elements 2;
                 description "none";
             }
-            leaf-list lower-connection {
-                type leafref {
-                    path '/tapi-common:context/tapi-connectivity:connection/tapi-connectivity:uuid';
-                }
+            list lower-connection {
+                uses connection-ref;
+                key 'connection-id';
                 description "An Connection object supports a recursive aggregation relationship such that the internal construction of an Connection can be exposed as multiple lower level Connection objects (partitioning).
-                    Aggregation is used as for the Node/Topology  to allow changes in hierarchy.
-                    Connection aggregation reflects Node/Topology aggregation.
+                    Aggregation is used as for the Node/Topology  to allow changes in hierarchy. 
+                    Connection aggregation reflects Node/Topology aggregation. 
                     The FC represents a Cross-Connection in an NE. The Cross-Connection in an NE is not necessarily the lowest level of FC partitioning.";
             }
             list route {
@@ -128,10 +156,8 @@
                 config false;
                 description "none";
             }
-            leaf connectivity-service-end-point {
-                type leafref {
-                    path '/tapi-common:context/tapi-connectivity:connectivity-service/tapi-connectivity:end-point/tapi-connectivity:local-id';
-                }
+            container connectivity-service-end-point {
+                uses connectivity-service-end-point-ref;
                 description "none";
             }
             list parent-node-edge-point {
@@ -160,7 +186,7 @@
             uses tapi-common:resource-spec;
             uses tapi-common:operational-state-pac;
             uses tapi-common:termination-pac;
-            description "The LogicalTerminationPoint (LTP) object class encapsulates the termination and adaptation functions of one or more transport layers.
+            description "The LogicalTerminationPoint (LTP) object class encapsulates the termination and adaptation functions of one or more transport layers. 
                 The structure of LTP supports all transport protocols including circuit and packet forms.";
         }
         grouping connectivity-constraint {
@@ -195,10 +221,8 @@
                 uses tapi-topology:latency-characteristic;
                 description "The effect on the latency of a queuing process. This only has significant effect for packet based systems and has a complex characteristic.";
             }
-            leaf coroute-inclusion {
-                type leafref {
-                    path '/tapi-common:context/tapi-connectivity:connectivity-service/tapi-connectivity:uuid';
-                }
+            container coroute-inclusion {
+                uses connectivity-service-ref;
                 description "none";
             }
             list diversity-exclusion {
@@ -216,10 +240,9 @@
                 uses connectivity-service-end-point;
                 description "none";
             }
-            leaf-list connection {
-                type leafref {
-                    path '/tapi-common:context/tapi-connectivity:connection/tapi-connectivity:uuid';
-                }
+            list connection {
+                uses connection-ref;
+                key 'connection-id';
                 config false;
                 description "none";
             }
@@ -267,25 +290,24 @@
             uses tapi-common:local-class;
             uses tapi-common:admin-state-pac;
             description "The association of the FC to LTPs is made via EndPoints.
-                The EndPoint (EP) object class models the access to the FC function.
-                The traffic forwarding between the associated EPs of the FC depends upon the type of FC and may be associated with FcSwitch object instances.
-                In cases where there is resilience the EndPoint may convey the resilience role of the access to the FC.
+                The EndPoint (EP) object class models the access to the FC function. 
+                The traffic forwarding between the associated EPs of the FC depends upon the type of FC and may be associated with FcSwitch object instances.  
+                In cases where there is resilience the EndPoint may convey the resilience role of the access to the FC. 
                 It can represent a protected (resilient/reliable) point or a protecting (unreliable working or protection) point.
-                The EP replaces the Protection Unit of a traditional protection model.
+                The EP replaces the Protection Unit of a traditional protection model. 
                 The ForwadingConstruct can be considered as a component and the EndPoint as a Port on that component";
         }
         grouping route {
-            leaf-list connection-end-point {
-                type leafref {
-                    path '/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:owned-node-edge-point/tapi-connectivity:connection-end-point/tapi-connectivity:uuid';
-                }
+            list connection-end-point {
+                uses connection-end-point-ref;
+                key 'topology-id node-id owned-node-edge-point-id connection-end-point-id';
                 config false;
                 min-elements 2;
                 description "none";
             }
             uses tapi-common:local-class;
-            description "The FC Route (FcRoute) object class models the individual routes of an FC.
-                The route of an FC object is represented by a list of FCs at a lower level.
+            description "The FC Route (FcRoute) object class models the individual routes of an FC. 
+                The route of an FC object is represented by a list of FCs at a lower level. 
                 Note that depending on the service supported by an FC, an the FC can have multiple routes.";
         }
         grouping connectivity-context {
@@ -309,10 +331,9 @@
                 min-elements 1;
                 description "none";
             }
-            leaf-list selected-route {
-                type leafref {
-                    path '/tapi-common:context/tapi-connectivity:connection/tapi-connectivity:route/tapi-connectivity:local-id';
-                }
+            list selected-route {
+                uses route-ref;
+                key 'connection-id route-id';
                 min-elements 1;
                 description "none";
             }
@@ -330,10 +351,10 @@
                 description "Indicates whether the switch selects from ingress to the FC or to egress of the FC, or both.";
             }
             uses tapi-common:local-class;
-            description "The class models the switched forwarding of traffic (traffic flow) between FcPorts (ConnectionEndPoints) and is present where there is protection functionality in the FC (Connection).
+            description "The class models the switched forwarding of traffic (traffic flow) between FcPorts (ConnectionEndPoints) and is present where there is protection functionality in the FC (Connection). 
                 If an FC exposes protection (having two or more FcPorts that provide alternative identical inputs/outputs), the FC will have one or more associated FcSwitch objects to represent the alternative flow choices visible at the edge of the FC.
-                The FC switch represents and defines a protection switch structure encapsulated in the FC.
-                Essentially performs one of the functions of the Protection Group in a traditional model. It associates to 2 or more FcPorts each playing the role of a Protection Unit.
+                The FC switch represents and defines a protection switch structure encapsulated in the FC. 
+                Essentially performs one of the functions of the Protection Group in a traditional model. It associates to 2 or more FcPorts each playing the role of a Protection Unit. 
                 One or more protection, i.e. standby/backup, FcPorts provide protection for one or more working (i.e. regular/main/preferred) FcPorts where either protection or working can feed one or more protected FcPort.
                 The switch may be used in revertive or non-revertive (symmetric) mode. When in revertive mode it may define a waitToRestore time.
                 It may be used in one of several modes including source switch, destination switched, source and destination switched etc (covering cases such as 1+1 and 1:1).
@@ -393,7 +414,7 @@
             }
             leaf is-frozen {
                 type boolean;
-                description "Temporarily prevents any switch action to be taken and, as such, freezes the current state.
+                description "Temporarily prevents any switch action to be taken and, as such, freezes the current state. 
                     Until the freeze is cleared, additional near-end external commands are rejected and fault condition changes and received APS messages are ignored.
                     All administrative controls of any aspect of protection are rejected.";
             }
diff --git a/models/tapi/src/main/yang/tapi-eth@2018-02-16.yang b/models/tapi/src/main/yang/tapi-eth@2018-03-07.yang
similarity index 98%
rename from models/tapi/src/main/yang/tapi-eth@2018-02-16.yang
rename to models/tapi/src/main/yang/tapi-eth@2018-03-07.yang
index db1e70e..1ce1261 100644
--- a/models/tapi/src/main/yang/tapi-eth@2018-02-16.yang
+++ b/models/tapi/src/main/yang/tapi-eth@2018-03-07.yang
@@ -21,13 +21,13 @@
         Source: TapiEth.uml
         Copyright (c) 2018 Open Networking Foundation (ONF). All rights reserved.
         License: This module is distributed under the Apache License 2.0";
-    revision 2018-02-16 {
-        description "ONF Transport API version 2.0.1
+    revision 2018-03-07 {
+        description "ONF Transport API version 2.0.2
         This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool version .
         <https://wiki.opennetworking.org/display/OIMT/IISOMI>
-        Changes in this revision: <https://github.com/OpenNetworkingFoundation/Snowmass-ONFOpenTransport/blob/develop/change-log.md>";
+        Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/change-log.md>";
         reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
-                  <https://github.com/OpenNetworkingFoundation/Snowmass-ONFOpenTransport/tree/develop/UML>";
+                  <https://github.com/OpenNetworkingFoundation/TAPI/tree/develop/UML>";
     }
     augment "/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:owned-node-edge-point" {
         uses eth-node-edge-point-spec;
diff --git a/models/tapi/src/main/yang/tapi-notification@2018-02-16.yang b/models/tapi/src/main/yang/tapi-notification@2018-03-07.yang
similarity index 98%
rename from models/tapi/src/main/yang/tapi-notification@2018-02-16.yang
rename to models/tapi/src/main/yang/tapi-notification@2018-03-07.yang
index ac259b7..450276f 100644
--- a/models/tapi/src/main/yang/tapi-notification@2018-02-16.yang
+++ b/models/tapi/src/main/yang/tapi-notification@2018-03-07.yang
@@ -15,13 +15,13 @@
         Source: TapiNotification.uml
         Copyright (c) 2018 Open Networking Foundation (ONF). All rights reserved.
         License: This module is distributed under the Apache License 2.0";
-    revision 2018-02-16 {
-        description "ONF Transport API version 2.0.1
+    revision 2018-03-07 {
+        description "ONF Transport API version 2.0.2
         This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool version .
         <https://wiki.opennetworking.org/display/OIMT/IISOMI>
-        Changes in this revision: <https://github.com/OpenNetworkingFoundation/Snowmass-ONFOpenTransport/blob/develop/change-log.md>";
+        Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/change-log.md>";
         reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
-                  <https://github.com/OpenNetworkingFoundation/Snowmass-ONFOpenTransport/tree/develop/UML>";
+                  <https://github.com/OpenNetworkingFoundation/TAPI/tree/develop/UML>";
     }
     augment "/tapi-common:context" {
         uses notification-context;
diff --git a/models/tapi/src/main/yang/tapi-oam@2018-02-16.yang b/models/tapi/src/main/yang/tapi-oam@2018-03-07.yang
similarity index 74%
rename from models/tapi/src/main/yang/tapi-oam@2018-02-16.yang
rename to models/tapi/src/main/yang/tapi-oam@2018-03-07.yang
index f620571..f888fa6 100644
--- a/models/tapi/src/main/yang/tapi-oam@2018-02-16.yang
+++ b/models/tapi/src/main/yang/tapi-oam@2018-03-07.yang
@@ -21,13 +21,13 @@
         Source: TapiOam.uml
         Copyright (c) 2018 Open Networking Foundation (ONF). All rights reserved.
         License: This module is distributed under the Apache License 2.0";
-    revision 2018-02-16 {
-        description "ONF Transport API version 2.0.1
+    revision 2018-03-07 {
+        description "ONF Transport API version 2.0.2
         This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool version .
         <https://wiki.opennetworking.org/display/OIMT/IISOMI>
-        Changes in this revision: <https://github.com/OpenNetworkingFoundation/Snowmass-ONFOpenTransport/blob/develop/change-log.md>";
+        Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/change-log.md>";
         reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
-                  <https://github.com/OpenNetworkingFoundation/Snowmass-ONFOpenTransport/tree/develop/UML>";
+                  <https://github.com/OpenNetworkingFoundation/TAPI/tree/develop/UML>";
     }
     augment "/tapi-common:context" {
         uses oam-context;
@@ -41,6 +41,73 @@
         uses mep-mip-list;
         description "none";
     }
+    
+    /*************************
+    * definitions of references
+    *************************/
+    grouping oam-service-ref {
+        leaf oam-service-id {
+            type leafref {
+                path '/tapi-common:context/tapi-oam:oam-service/tapi-oam:uuid';
+            }
+            description "none";
+        }
+        description "none";
+    }
+
+    grouping oam-service-end-point-ref {
+    	uses oam-service-ref;
+    	leaf oam-service-end-point-id {
+	    	type leafref {
+	            path '/tapi-common:context/tapi-oam:oam-service/tapi-oam:end-point/tapi-oam:local-id';
+	        }
+	    	description "none";
+    	}
+    	description "none";
+    }
+    grouping meg-ref {
+        leaf meg-id {
+            type leafref {
+            	path '/tapi-common:context/tapi-oam:meg/tapi-oam:uuid';
+            }
+            description "none";
+        }
+        description "none";
+    }
+
+    grouping mep-ref {
+    	uses meg-ref;
+        leaf mep-id {
+            type leafref {
+            	path '/tapi-common:context/tapi-oam:meg/tapi-oam:mep/tapi-oam:local-id';
+            }
+            description "none";
+        }
+        description "none";
+    }
+    
+    grouping mip-ref {
+    	uses meg-ref;
+        leaf mip-id {
+            type leafref {
+            	path '/tapi-common:context/tapi-oam:meg/tapi-oam:mip/tapi-oam:local-id';
+            }
+            description "none";
+        }
+        description "none";
+    }
+    
+    grouping me-ref {
+    	uses meg-ref;
+        leaf me-id {
+            type leafref {
+            	path '/tapi-common:context/tapi-oam:meg/tapi-oam:me/tapi-oam:local-id';
+            }
+            description "none";
+        }
+        description "none";
+    }
+    
     /***********************
     * package object-classes
     **********************/ 
@@ -128,25 +195,21 @@
             description "none";
         }
         grouping me {
-            leaf-list mep {
-                type leafref {
-                    path '/tapi-common:context/tapi-oam:meg/tapi-oam:mep/tapi-oam:local-id';
-                }
+            list mep {
+                uses mep-ref;
+                key 'meg-id mep-id';
                 config false;
                 max-elements 2;
                 description "none";
             }
-            leaf-list mip {
-                type leafref {
-                    path '/tapi-common:context/tapi-oam:meg/tapi-oam:mip/tapi-oam:local-id';
-                }
+            list mip {
+            	uses mip-ref;
+                key 'meg-id mip-id';
                 config false;
                 description "none";
             }
-            leaf connection-route {
-                type leafref {
-                    path '/tapi-common:context/tapi-connectivity:connection/tapi-connectivity:route/tapi-connectivity:local-id';
-                }
+            container connection-route {
+            	uses tapi-connectivity:route-ref;
                 config false;
                 description "none";
             }
@@ -163,10 +226,8 @@
             description "none";
         }
         grouping oam-service {
-            leaf meg {
-                type leafref {
-                    path '/tapi-common:context/tapi-oam:meg/tapi-oam:uuid';
-                }
+            container meg {
+            	uses meg-ref;
                 config false;
                 description "none";
             }
@@ -194,16 +255,12 @@
             description "none";
         }
         grouping oam-service-end-point {
-            leaf service-interface-point {
-                type leafref {
-                    path '/tapi-common:context/tapi-common:service-interface-point/tapi-common:uuid';
-                }
+        	container service-interface-point {
+                uses tapi-common:service-interface-point-ref;
                 description "none";
             }
-            leaf connectivity-service-end-point {
-                type leafref {
-                    path '/tapi-common:context/tapi-connectivity:connectivity-service/tapi-connectivity:end-point/tapi-connectivity:local-id';
-                }
+        	container connectivity-service-end-point {
+                uses tapi-connectivity:connectivity-service-end-point-ref;
                 description "none";
             }
             list pro-active-measurement-job {
@@ -216,10 +273,8 @@
                 uses on-demand-measurement-job;
                 description "none";
             }
-            leaf associated-mep {
-                type leafref {
-                    path '/tapi-common:context/tapi-oam:meg/tapi-oam:mep/tapi-oam:local-id';
-                }
+            container associated-mep {
+                uses mep-ref;
                 config false;
                 description "none";
             }
@@ -232,16 +287,14 @@
             description "none";
         }
         grouping mep-mip-list {
-            leaf-list mip {
-                type leafref {
-                    path '/tapi-common:context/tapi-oam:meg/tapi-oam:mip/tapi-oam:local-id';
-                }
+            list mip {
+            	uses mip-ref;
+                key 'meg-id mip-id';
                 description "none";
             }
-            leaf-list mep {
-                type leafref {
-                    path '/tapi-common:context/tapi-oam:meg/tapi-oam:mep/tapi-oam:local-id';
-                }
+            list mep {
+            	uses mep-ref;
+                key 'meg-id mep-id';
                 description "none";
             }
             description "none";
diff --git a/models/tapi/src/main/yang/tapi-odu@2018-02-16.yang b/models/tapi/src/main/yang/tapi-odu@2018-03-07.yang
similarity index 98%
rename from models/tapi/src/main/yang/tapi-odu@2018-02-16.yang
rename to models/tapi/src/main/yang/tapi-odu@2018-03-07.yang
index 9e2dd32..41c8b0d 100644
--- a/models/tapi/src/main/yang/tapi-odu@2018-02-16.yang
+++ b/models/tapi/src/main/yang/tapi-odu@2018-03-07.yang
@@ -24,13 +24,13 @@
         Source: TapiOdu.uml
         Copyright (c) 2018 Open Networking Foundation (ONF). All rights reserved.
         License: This module is distributed under the Apache License 2.0";
-    revision 2018-02-16 {
-        description "ONF Transport API version 2.0.1
+    revision 2018-03-07 {
+        description "ONF Transport API version 2.0.2
         This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool version .
         <https://wiki.opennetworking.org/display/OIMT/IISOMI>
-        Changes in this revision: <https://github.com/OpenNetworkingFoundation/Snowmass-ONFOpenTransport/blob/develop/change-log.md>";
+        Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/change-log.md>";
         reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
-                  <https://github.com/OpenNetworkingFoundation/Snowmass-ONFOpenTransport/tree/develop/UML>";
+                  <https://github.com/OpenNetworkingFoundation/TAPI/tree/develop/UML>";
     }
     augment "/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:owned-node-edge-point" {
         uses odu-node-edge-point-spec;
diff --git a/models/tapi/src/main/yang/tapi-otsi@2018-02-16.yang b/models/tapi/src/main/yang/tapi-otsi@2018-03-07.yang
similarity index 97%
rename from models/tapi/src/main/yang/tapi-otsi@2018-02-16.yang
rename to models/tapi/src/main/yang/tapi-otsi@2018-03-07.yang
index e8cc6ae..427639a 100644
--- a/models/tapi/src/main/yang/tapi-otsi@2018-02-16.yang
+++ b/models/tapi/src/main/yang/tapi-otsi@2018-03-07.yang
@@ -21,13 +21,13 @@
         Source: TapiOtsi.uml
         Copyright (c) 2018 Open Networking Foundation (ONF). All rights reserved.
         License: This module is distributed under the Apache License 2.0";
-    revision 2018-02-16 {
-        description "ONF Transport API version 2.0.1
+    revision 2018-03-07 {
+        description "ONF Transport API version 2.0.2
         This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool version .
         <https://wiki.opennetworking.org/display/OIMT/IISOMI>
-        Changes in this revision: <https://github.com/OpenNetworkingFoundation/Snowmass-ONFOpenTransport/blob/develop/change-log.md>";
+        Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/change-log.md>";
         reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
-                  <https://github.com/OpenNetworkingFoundation/Snowmass-ONFOpenTransport/tree/develop/UML>";
+                  <https://github.com/OpenNetworkingFoundation/TAPI/tree/develop/UML>";
     }
     augment "/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:owned-node-edge-point/tapi-connectivity:connection-end-point" {
         uses otsi-connection-end-point-spec;
diff --git a/models/tapi/src/main/yang/tapi-path-computation@2018-03-07.yang b/models/tapi/src/main/yang/tapi-path-computation@2018-03-07.yang
index fa5745b..6c91d5e 100644
--- a/models/tapi/src/main/yang/tapi-path-computation@2018-03-07.yang
+++ b/models/tapi/src/main/yang/tapi-path-computation@2018-03-07.yang
@@ -8,10 +8,10 @@
         prefix tapi-common;
     }
     organization "ONF OTCC (Open Transport Configuration & Control) Project";
-    contact "
-        Project Web: <https://wiki.opennetworking.org/display/OTCC/TAPI>
-        Project List: <mailto:transport-api@opennetworking.org>
-        Editor: Karthik Sethuraman
+    contact "
+        Project Web: <https://wiki.opennetworking.org/display/OTCC/TAPI>
+        Project List: <mailto:transport-api@opennetworking.org>
+        Editor: Karthik Sethuraman
                 <mailto:karthik.sethuraman@necam.com>";
     description "
         This module contains TAPI Path Computation Model definitions.
@@ -19,11 +19,11 @@
         Copyright (c) 2018 Open Networking Foundation (ONF). All rights reserved.
         License: This module is distributed under the Apache License 2.0";
     revision 2018-03-07 {
-        description "ONF Transport API version 2.0.2
-        This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool version .
-        <https://wiki.opennetworking.org/display/OIMT/IISOMI>
+        description "ONF Transport API version 2.0.2
+        This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool version .
+        <https://wiki.opennetworking.org/display/OIMT/IISOMI>
         Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/change-log.md>";
-        reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
+        reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
                   <https://github.com/OpenNetworkingFoundation/TAPI/tree/develop/UML>";
     }
     augment "/tapi-common:context" {
@@ -39,12 +39,14 @@
             type leafref {
                 path '/tapi-common:context/tapi-path-computation:path/tapi-path-computation:uuid';
             }
+            description "none";
         }
+        description "none";
     }
 
     /***********************
     * package object-classes
-    **********************/
+    **********************/ 
         grouping path {
             list link {
                 uses tapi-topology:link-ref;
@@ -62,10 +64,8 @@
             description "Path is described by an ordered list of TE Links. A TE Link is defined by a pair of Node/NodeEdgePoint IDs. A Connection is realized by concatenating link resources (associated with a Link) and the lower-level connections (cross-connections) in the different nodes";
         }
         grouping path-service-end-point {
-            leaf service-interface-point {
-                type leafref {
-                    path '/tapi-common:context/tapi-common:service-interface-point/tapi-common:uuid';
-                }
+            container service-interface-point {
+            	uses tapi-common:service-interface-point-ref;
                 config false;
                 description "none";
             }
@@ -86,11 +86,11 @@
             }
             uses tapi-common:local-class;
             description "The association of the FC to LTPs is made via EndPoints.
-                The EndPoint (EP) object class models the access to the FC function.
-                The traffic forwarding between the associated EPs of the FC depends upon the type of FC and may be associated with FcSwitch object instances.
-                In cases where there is resilience the EndPoint may convey the resilience role of the access to the FC.
+                The EndPoint (EP) object class models the access to the FC function. 
+                The traffic forwarding between the associated EPs of the FC depends upon the type of FC and may be associated with FcSwitch object instances.  
+                In cases where there is resilience the EndPoint may convey the resilience role of the access to the FC. 
                 It can represent a protected (resilient/reliable) point or a protecting (unreliable working or protection) point.
-                The EP replaces the Protection Unit of a traditional protection model.
+                The EP replaces the Protection Unit of a traditional protection model. 
                 The ForwadingConstruct can be considered as a component and the EndPoint as a Port on that component";
         }
         grouping path-computation-service {
@@ -195,10 +195,9 @@
                 config false;
                 description "none";
             }
-            leaf-list avoid-topology {
-                type leafref {
-                    path '/tapi-common:context/tapi-topology:topology/tapi-topology:uuid';
-                }
+            list avoid-topology {
+                uses tapi-topology:topology-ref;
+                key 'topology-id';
                 config false;
                 description "none";
             }
diff --git a/models/tapi/src/main/yang/tapi-topology@2018-03-07.yang b/models/tapi/src/main/yang/tapi-topology@2018-03-07.yang
index db6cabc..ce4ae27 100644
--- a/models/tapi/src/main/yang/tapi-topology@2018-03-07.yang
+++ b/models/tapi/src/main/yang/tapi-topology@2018-03-07.yang
@@ -5,10 +5,10 @@
         prefix tapi-common;
     }
     organization "ONF OTCC (Open Transport Configuration & Control) Project";
-    contact "
-        Project Web: <https://wiki.opennetworking.org/display/OTCC/TAPI>
-        Project List: <mailto:transport-api@opennetworking.org>
-        Editor: Karthik Sethuraman
+    contact "
+        Project Web: <https://wiki.opennetworking.org/display/OTCC/TAPI>
+        Project List: <mailto:transport-api@opennetworking.org>
+        Editor: Karthik Sethuraman
                 <mailto:karthik.sethuraman@necam.com>";
     description "
         This module contains TAPI Topology Model definitions.
@@ -16,11 +16,11 @@
         Copyright (c) 2018 Open Networking Foundation (ONF). All rights reserved.
         License: This module is distributed under the Apache License 2.0";
     revision 2018-03-07 {
-        description "ONF Transport API version 2.0.2
-        This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool version .
-        <https://wiki.opennetworking.org/display/OIMT/IISOMI>
+        description "ONF Transport API version 2.0.2
+        This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool version .
+        <https://wiki.opennetworking.org/display/OIMT/IISOMI>
         Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/change-log.md>";
-        reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
+        reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
                   <https://github.com/OpenNetworkingFoundation/TAPI/tree/develop/UML>";
     }
     augment "/tapi-common:context" {
@@ -37,7 +37,9 @@
             type leafref {
                 path '/tapi-common:context/tapi-topology:topology/tapi-topology:uuid';
             }
+            description "none";
         }
+        description "none";
     }
 
     grouping link-ref {
@@ -46,7 +48,9 @@
             type leafref {
                 path '/tapi-common:context/tapi-topology:topology/tapi-topology:link/tapi-topology:uuid';
             }
+            description "none";
         }
+        description "none";
     }
 
     grouping node-ref {
@@ -55,7 +59,9 @@
             type leafref {
                 path '/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:uuid';
             }
+            description "none";
         }
+        description "none";
     }
 
     grouping owned-node-edge-point-ref {
@@ -64,7 +70,9 @@
             type leafref {
                 path '/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:owned-node-edge-point/tapi-topology:uuid';
             }
+            description "none";
         }
+        description "none";
     }
 
     grouping node-rule-group-ref {
@@ -73,12 +81,14 @@
             type leafref {
                 path '/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:node-rule-group/tapi-topology:uuid';
             }
+            description "none";
         }
+        description "none";
     }
 
     /***********************
     * package object-classes
-    **********************/
+    **********************/ 
         grouping link {
             list node-edge-point {
                 uses owned-node-edge-point-ref;
@@ -96,8 +106,8 @@
             leaf direction {
                 type tapi-common:forwarding-direction;
                 config false;
-                description "The directionality of the Link.
-                    Is applicable to simple Links where all LinkEnds are BIDIRECTIONAL (the Link will be BIDIRECTIONAL) or UNIDIRECTIONAL (the Link will be UNIDIRECTIONAL).
+                description "The directionality of the Link. 
+                    Is applicable to simple Links where all LinkEnds are BIDIRECTIONAL (the Link will be BIDIRECTIONAL) or UNIDIRECTIONAL (the Link will be UNIDIRECTIONAL). 
                     Is not present in more complex cases.";
             }
             container resilience-type {
@@ -122,10 +132,9 @@
                 uses node-edge-point;
                 description "none";
             }
-            leaf-list aggregated-node-edge-point {
-                type leafref {
-                    path '/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:owned-node-edge-point/tapi-topology:uuid';
-                }
+            list aggregated-node-edge-point {
+            	uses owned-node-edge-point-ref;
+                key 'topology-id node-id owned-node-edge-point-id';
                 config false;
                 description "none";
             }
@@ -151,7 +160,7 @@
             uses transfer-cost-pac;
             uses transfer-integrity-pac;
             uses transfer-timing-pac;
-            description "The ForwardingDomain (FD) object class models the “ForwardingDomain” topological component which is used to effect forwarding of transport characteristic information and offers the potential to enable forwarding.
+            description "The ForwardingDomain (FD) object class models the ForwardingDomain topological component which is used to effect forwarding of transport characteristic information and offers the potential to enable forwarding. 
                 At the lowest level of recursion, an FD (within a network element (NE)) represents a switch matrix (i.e., a fabric). Note that an NE can encompass multiple switch matrices (FDs). ";
         }
         grouping topology {
@@ -174,7 +183,7 @@
                 description "none";
             }
             uses tapi-common:resource-spec;
-            description "The ForwardingDomain (FD) object class models the “ForwardingDomain” topological component which is used to effect forwarding of transport characteristic information and offers the potential to enable forwarding.
+            description "The ForwardingDomain (FD) object class models the ForwardingDomain topological component which is used to effect forwarding of transport characteristic information and offers the potential to enable forwarding. 
                 At the lowest level of recursion, an FD (within a network element (NE)) represents a switch matrix (i.e., a fabric). Note that an NE can encompass multiple switch matrices (FDs). ";
         }
         grouping layer-protocol-transition-pac {
@@ -183,8 +192,8 @@
                 min-elements 2;
                 description "Provides the ordered structure of layer protocol transitions encapsulated in the TopologicalEntity. The ordering relates to the LinkPort role.";
             }
-            description "Relevant for a Link that is formed by abstracting one or more LTPs (in a stack) to focus on the flow and deemphasize the protocol transformation.
-                This abstraction is relevant when considering multi-layer routing.
+            description "Relevant for a Link that is formed by abstracting one or more LTPs (in a stack) to focus on the flow and deemphasize the protocol transformation. 
+                This abstraction is relevant when considering multi-layer routing. 
                 The layer protocols of the LTP and the order of their application to the signal is still relevant and need to be accounted for. This is derived from the LTP spec details.
                 This Pac provides the relevant abstractions of the LTPs and provides the necessary association to the LTPs involved.
                 Links that included details in this Pac are often referred to as Transitional Links.";
@@ -195,10 +204,9 @@
                 config false;
                 description "none";
             }
-            leaf-list aggregated-node-edge-point {
-                type leafref {
-                    path '/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:owned-node-edge-point/tapi-topology:uuid';
-                }
+            list aggregated-node-edge-point {
+            	uses owned-node-edge-point-ref;
+                key 'topology-id node-id owned-node-edge-point-id';
                 config false;
                 description "none";
             }
@@ -222,7 +230,7 @@
             uses tapi-common:admin-state-pac;
             uses tapi-common:termination-pac;
             uses tapi-common:capacity-pac;
-            description "The LogicalTerminationPoint (LTP) object class encapsulates the termination and adaptation functions of one or more transport layers.
+            description "The LogicalTerminationPoint (LTP) object class encapsulates the termination and adaptation functions of one or more transport layers. 
                 The structure of LTP supports all transport protocols including circuit and packet forms.";
         }
         grouping risk-parameter-pac {
@@ -233,7 +241,7 @@
                 uses risk-characteristic;
                 description "A list of risk characteristics for consideration in an analysis of shared risk. Each element of the list represents a specific risk consideration.";
             }
-            description "The risk characteristics of a TopologicalEntity come directly from the underlying physical realization.
+            description "The risk characteristics of a TopologicalEntity come directly from the underlying physical realization. 
                 The risk characteristics propagate from the physical realization to the client and from the server layer to the client layer, this propagation may be modified by protection.
                 A TopologicalEntity may suffer degradation or failure as a result of a problem in a part of the underlying realization.
                 The realization can be partitioned into segments which have some relevant common failure modes.
@@ -254,16 +262,16 @@
                 uses cost-characteristic;
                 description "The list of costs where each cost relates to some aspect of the TopologicalEntity.";
             }
-            description "The cost characteristics of a TopologicalEntity not necessarily correlated to the cost of the underlying physical realization.
+            description "The cost characteristics of a TopologicalEntity not necessarily correlated to the cost of the underlying physical realization. 
                 They may be quite specific to the individual TopologicalEntity e.g. opportunity cost. Relates to layer capacity
-                There may be many perspectives from which cost may be considered  for a particular TopologicalEntity and hence many specific costs and potentially cost algorithms.
+                There may be many perspectives from which cost may be considered  for a particular TopologicalEntity and hence many specific costs and potentially cost algorithms. 
                 Using an entity will incur a cost. ";
         }
         grouping transfer-integrity-pac {
             leaf error-characteristic {
                 type string;
                 config false;
-                description "Describes the degree to which the signal propagated can be errored.
+                description "Describes the degree to which the signal propagated can be errored. 
                     Applies to TDM systems as the errored signal will be propagated and not packet as errored packets will be discarded.";
             }
             leaf loss-characteristic {
@@ -275,7 +283,7 @@
             leaf repeat-delivery-characteristic {
                 type string;
                 config false;
-                description "Primarily applies to packet systems where a packet may be delivered more than once (in fault recovery for example).
+                description "Primarily applies to packet systems where a packet may be delivered more than once (in fault recovery for example). 
                     It can also apply to TDM where several frames may be received twice due to switching in a system with a large differential propagation delay.";
             }
             leaf delivery-order-characteristic {
@@ -319,10 +327,9 @@
             description "Validation covers the various adjacenct discovery and reachability verification protocols. Also may cover Information source and degree of integrity.";
         }
         grouping network-topology-service {
-            leaf-list topology {
-                type leafref {
-                    path '/tapi-common:context/tapi-topology:topology/tapi-topology:uuid';
-                }
+            list topology {
+                uses topology-ref;
+                key 'topology-id';
                 config false;
                 description "none";
             }
@@ -370,10 +377,9 @@
                 uses rule;
                 description "none";
             }
-            leaf-list node-edge-point {
-                type leafref {
-                    path '/tapi-common:context/tapi-topology:topology/tapi-topology:node/tapi-topology:owned-node-edge-point/tapi-topology:uuid';
-                }
+            list node-edge-point {
+            	uses owned-node-edge-point-ref;
+                key 'topology-id node-id owned-node-edge-point-id';
                 min-elements 1;
                 description "none";
             }
diff --git a/models/tapi/src/main/yang/tapi-virtual-network@2018-03-07.yang b/models/tapi/src/main/yang/tapi-virtual-network@2018-03-07.yang
index 3157955..162df49 100644
--- a/models/tapi/src/main/yang/tapi-virtual-network@2018-03-07.yang
+++ b/models/tapi/src/main/yang/tapi-virtual-network@2018-03-07.yang
@@ -8,10 +8,10 @@
         prefix tapi-common;
     }
     organization "ONF OTCC (Open Transport Configuration & Control) Project";
-    contact "
-        Project Web: <https://wiki.opennetworking.org/display/OTCC/TAPI>
-        Project List: <mailto:transport-api@opennetworking.org>
-        Editor: Karthik Sethuraman
+    contact "
+        Project Web: <https://wiki.opennetworking.org/display/OTCC/TAPI>
+        Project List: <mailto:transport-api@opennetworking.org>
+        Editor: Karthik Sethuraman
                 <mailto:karthik.sethuraman@necam.com>";
     description "
         This module contains TAPI Virtual Network Model definitions.
@@ -19,37 +19,47 @@
         Copyright (c) 2018 Open Networking Foundation (ONF). All rights reserved.
         License: This module is distributed under the Apache License 2.0";
     revision 2018-03-07 {
-        description "ONF Transport API version 2.0.1
-        This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool version .
-        <https://wiki.opennetworking.org/display/OIMT/IISOMI>
+        description "ONF Transport API version 2.0.2
+        This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool version .
+        <https://wiki.opennetworking.org/display/OIMT/IISOMI>
         Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/change-log.md>";
-        reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
+        reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model
                   <https://github.com/OpenNetworkingFoundation/TAPI/tree/develop/UML>";
     }
     augment "/tapi-common:context" {
         uses virtual-network-context;
         description "Augments the base TAPI Context with VirtualNetworkService information";
     }
+    /*************************
+     * definitions of refrences
+     *************************/
+     grouping virtual-nw-service-ref {
+         leaf virtual-nw-service-id {
+             type leafref {
+                 path '/tapi-common:context/tapi-virtual-network:virtual-nw-service/tapi-virtual-network:uuid';
+             }
+             description "none";
+         }
+         description "none";
+     }
+     
     /***********************
     * package object-classes
-    **********************/
+    **********************/ 
         grouping virtual-network-constraint {
             container src-service-end-point {
                 uses tapi-common:service-interface-point-ref;
                 config false;
                 description "none";
             }
-            leaf sink-service-end-point {
-                type leafref {
-                    path '/tapi-common:context/tapi-common:service-interface-point/tapi-common:uuid';
-                }
+            container sink-service-end-point {
+            	uses tapi-common:service-interface-point-ref;
                 config false;
                 description "none";
             }
-            leaf-list diversity-exclusion {
-                type leafref {
-                    path '/tapi-common:context/tapi-virtual-network:virtual-nw-service/tapi-virtual-network:vnw-constraint/tapi-virtual-network:local-id';
-                }
+            list diversity-exclusion {
+                uses virtual-nw-service-ref;
+                key 'virtual-nw-service-id';
                 config false;
                 description "none";
             }
@@ -114,10 +124,8 @@
                 At the lowest level of recursion, a FC represents a cross-connection within an NE.";
         }
         grouping virtual-network-service-end-point {
-            leaf service-interface-point {
-                type leafref {
-                    path '/tapi-common:context/tapi-common:service-interface-point/tapi-common:uuid';
-                }
+            container service-interface-point {
+            	uses tapi-common:service-interface-point-ref;
                 config false;
                 description "none";
             }
