diff --git a/schema/cord-core.yang b/schema/cord-core.yang
index 25d3d3a..b399362 100644
--- a/schema/cord-core.yang
+++ b/schema/cord-core.yang
@@ -33,27 +33,26 @@
   
   /*** primary configuration tree for this module ***/
   
-  container cord {
-    list subscriber {
-      uses csub:subscriber-controller;
-      key "id";
+  list subscriber {
+    uses csub:subscriber-controller;
+    key "id";
 
-      description
-        "Authorative list of all subscriber instances";
+    description
+      "Authorative list of all subscriber instances";
 
-      leaf humanReadableName {
-        config false;
-        type string {
-          pattern '^cordSubscriber-\w+$';
-        }
+    leaf humanReadableName {
+      config false;
+      type string {
+        pattern '^cordSubscriber-\w+$';
       }
-      action delete;
+    }
+    action delete;
+  }
+
+  // here we augment the /api/tenant API configuration tree in 'xos' module
+  augment "/xos:api/xos:tenant" {
+    container cord {
+      node:link subscriber { path "/cord:subscriber"; }
     }
   }
-
-  // here we augment the /api/tenant/cord API configuration tree in 'xos' module
-  augment "/xos:api/xos:tenant" {
-    container cord { node:map "/cord:cord"; }
-  }
-  
 }
diff --git a/schema/cord-subscriber.yang b/schema/cord-subscriber.yang
index 8f3dae5..7fa098e 100644
--- a/schema/cord-subscriber.yang
+++ b/schema/cord-subscriber.yang
@@ -119,11 +119,11 @@
     node:view "features identity related";
 
     container features {
-      leaf cdn            { node:link "../../services/cdn/enabled"; }
-      leaf uplink-speed   { node:link "../../uplink-speed"; }
-      leaf downlink-speed { node:link "../../downlink-speed"; }
-      leaf uverse         { node:link "../../services/uverse/enabled"; }
-      leaf status         { node:link "../../status"; }
+      node:link cdn            { path "../services/cdn/enabled"; }
+      node:link uplink-speed   { path "../uplink-speed"; }
+      node:link downlink-speed { path "../downlink-speed"; }
+      node:link uverse         { path "../services/uverse/enabled"; }
+      node:link status         { path "../status"; }
       
       action update {
         description "when invoked, updates the features container (PUT)";
@@ -131,8 +131,8 @@
     }
     
     container identity {
-      leaf account-num { node:link "../../service-specific-id"; }
-      leaf name        { node:link "../../name"; }
+      node:link account-num { path "../service-specific-id"; }
+      node:link name        { path "../name"; }
       
       action update {
         description "when invoked, updates the identity container (PUT)";
diff --git a/schema/corenova-node.yang b/schema/corenova-node.yang
index 104c2e4..e0873e0 100644
--- a/schema/corenova-node.yang
+++ b/schema/corenova-node.yang
@@ -15,29 +15,18 @@
   feature corenova-node {
     description
       "this is to indicate the agent supports dynamic schema node
-       link/map/view.";
+       link and view constraints.";
   }
     
   extension link {
     description
-      "Links the current leaf (or leaf-list) to an alternate leaf in the
-       schema data tree. The current leaf becomes a 'mirror' instance
-       of the target node.";
-    argument target-node-path {
-      yin-element true;
-    }
-  }
-
-  extension map {
-    description
-      "Maps the current container (or list entry) to an alternate container
-       in the schema data tree. The target-node-path must not map to
-       leaf or leaf-list nodes. The current container will map to
-       additional data nodes found inside the alternate container. The
-       mapped data nodes behave similarly to the 'link' extension
-       case. It can be defined one or more times within the same
-       container to map across modules and other subtrees.";
-    argument target-node-path {
+      "Links a new 'link-name' element to an alternate data node element in
+       the schema data tree referenced by the 'path' sub statement. It
+       can be used within 'container' or 'list' type data element to
+       hold one or more such 'links' as part of its configuration data
+       tree.  The new link element becomes a 'mirror' instance of the
+       target node found in the path expression.";
+    argument link-name {
       yin-element true;
     }
   }
diff --git a/schema/xos-core.yang b/schema/xos-core.yang
index 82d1a7e..3de5ba3 100644
--- a/schema/xos-core.yang
+++ b/schema/xos-core.yang
@@ -41,9 +41,9 @@
   typedef unique-identifier {
     description "defines valid formats for external reference id";
     type union {
+      type uint32 { range 1..max; }
       type yang:uuid;
       type inet:uri;
-      type uint32 { range 1..max; }
     }
   }
 
