diff --git a/package.json b/package.json
index a692d35..47f925a 100644
--- a/package.json
+++ b/package.json
@@ -22,14 +22,20 @@
   "models": {
     "ietf-yang-types": "yang-js",
     "ietf-inet-types": "yang-js",
+    "corenova-node": "corenova",
     "xos-core": "./schema/xos-core.yang",
+    "cord-core": "./lib/cord-core.js",
     "cord-device": "./schema/cord-device.yang",
-    "cord-subscriber": "./schema/cord-subscriber.yang"
+    "cord-subscriber": "./lib/cord-subscriber.js"
   },
   "dependencies": {
     "node-uuid": "^1.4.7",
     "superagent": "^2.0.0",
-    "yang-js": "^0.14.18"
+    "yang-express": "^0.2.1",
+    "yang-js": "^0.14.20"
+  },
+  "optionalDependencies": {
+    "corenova": "^1.0.0"
   },
   "devDependencies": {
     "coffee-script": ">=1.7.0",
@@ -38,7 +44,7 @@
     "rimraf": "^2.5.2",
     "should": "~3.1.3"
   },
-  "main": "./lib/index.js",
+  "main": "./lib/server.js",
   "scripts": {
     "clean": "rimraf dist/* lib/*",
     "prebuild": "npm run clean -s && mkdir -p dist",
@@ -46,6 +52,7 @@
     "build": "npm run build:src",
     "prepublish": "npm run build",
     "pretest": "npm run build",
-    "test": "mocha"
+    "test": "mocha",
+    "start": "node lib/server.js"
   }
 }
diff --git a/sample-data.json b/sample-data.json
new file mode 100644
index 0000000..5e5377e
--- /dev/null
+++ b/sample-data.json
@@ -0,0 +1,12 @@
+{
+  "api": {
+    "service": {},
+    "tenant":  {}
+  },
+  "cord": {
+    "subscriber": [
+      { "id": 1, "service-specific-id": 1000 },
+      { "id": 2, "service-specific-id": 1001 }
+    ]
+  }
+}
diff --git a/schema/cord-core.yang b/schema/cord-core.yang
new file mode 100644
index 0000000..25d3d3a
--- /dev/null
+++ b/schema/cord-core.yang
@@ -0,0 +1,59 @@
+module cord-core {
+  
+  namespace "urn:onlab:cord";
+  prefix cord;
+  yang-version 1.1;
+
+  organization
+   "Open Networking Lab (CORD) / Corenova Technologies";
+
+  contact
+    "Larry Peterson <llp@onlab.us>
+     Peter K. Lee <peter@corenova.com>";
+
+  description
+   "This module contains a collection of core models for CORD.
+
+    Copyright (c) 2016 ON.LAB and the persons identified as authors of
+    the code.  All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, is permitted pursuant to, and subject to the license
+    terms of the Apache License, Version 2.0 which accompanies this
+    distribution, and is available at
+    (http://www.apache.org/licenses/LICENSE-2.0).";
+  
+  revision 2016-07-22 {
+    description "Initial revision.";
+  }
+
+  import xos-core        { prefix xos; }
+  import cord-subscriber { prefix csub; }
+  import corenova-node   { prefix node; }
+  
+  /*** primary configuration tree for this module ***/
+  
+  container cord {
+    list subscriber {
+      uses csub:subscriber-controller;
+      key "id";
+
+      description
+        "Authorative list of all subscriber instances";
+
+      leaf humanReadableName {
+        config false;
+        type string {
+          pattern '^cordSubscriber-\w+$';
+        }
+      }
+      action delete;
+    }
+  }
+
+  // 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-device.yang b/schema/cord-device.yang
index df77138..c0916ff 100644
--- a/schema/cord-device.yang
+++ b/schema/cord-device.yang
@@ -44,6 +44,5 @@
       }
       action update;
     }
-    action save;
   }
 }
diff --git a/schema/cord-subscriber.yang b/schema/cord-subscriber.yang
index bfb782f..8f3dae5 100644
--- a/schema/cord-subscriber.yang
+++ b/schema/cord-subscriber.yang
@@ -1,6 +1,7 @@
 module cord-subscriber {
+  
   namespace "urn:onlab:cord:subscriber";
-  prefix cord-sub;
+  prefix csub;
   yang-version 1.1;
 
   organization
@@ -10,15 +11,28 @@
     "Larry Peterson <llp@onlab.us>
      Peter K. Lee <peter@corenova.com>";
   
-  import xos-core        { prefix xos; }
-  import cord-device     { prefix dev; }
-  import ietf-yang-types { prefix yang; }
-  //import yang-node-link  { prefix node; }
+  description
+   "This module contains CORD Subscriber model representing its
+    relationship to features, services, and devices.
 
+    Copyright (c) 2016 ON.LAB and the persons identified as authors of
+    the code.  All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, is permitted pursuant to, and subject to the license
+    terms of the Apache License, Version 2.0 which accompanies this
+    distribution, and is available at
+    (http://www.apache.org/licenses/LICENSE-2.0).";
+  
   revision 2016-07-14 {
     description "Initial revision.";
   }
   
+  import xos-core        { prefix xos; }
+  import cord-device     { prefix dev; }
+  import ietf-yang-types { prefix yang; }
+  import corenova-node   { prefix node; }
+
   identity cord-subscriber { base xos:subscriber; }
 
   grouping subscriber {
@@ -85,110 +99,51 @@
       }
     }
 
-    list devices {
+    list device {
       uses dev:device;
-      key 'mac';
+      key "mac";
 
       action create {
-        input {
-          leaf mac {
-            type yang:mac-address;
-            mandatory true;
-          }
-          // other acceptable attributes that can be used during create
-        }
+        input { uses dev:device; }
       }
       action update {
-        input {
-          leaf mac {
-            type yang:mac-address;
-            //must "../.[mac = current()]";
-            mandatory true;
-          }
-          // other acceptable attributes for updating
-        }
+        input { uses dev:device; }
       }
-      action delete {
-        input {
-          leaf mac {
-            type yang:mac-address;
-            //must "../.[mac = current()]";
-            mandatory true;
-          }
-          // other acceptable attributes for updating
-        }
-      }
-    }
-    
-    action save {
-      description "when invoked, saves the model to a safe place";
+      action delete;
     }
   }
 
   grouping subscriber-controller {
     uses subscriber;
 
+    node:view "features identity related";
+
     container features {
-      leaf cdn {
-        //path "../../services/cdn/enabled";
-      }
-      leaf uplink-speed {
-        //path "../../uplink-speed";
-      }
-      leaf downlink-speed {
-        //path "../../downlink-speed";
-      }
-      leaf uverse {
-        //path "../../services/uverse/enabled";
-      }
-      leaf status {
-        //path "../../status";
-      }
+      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"; }
+      
       action update {
         description "when invoked, updates the features container (PUT)";
       }
     }
     
     container identity {
-      leaf account-num {
-        //path "../../service-specific-id";
-      }
-      leaf name {
-        //path "../../name";
-      }
+      leaf account-num { node:link "../../service-specific-id"; }
+      leaf name        { node:link "../../name"; }
+      
       action update {
         description "when invoked, updates the identity container (PUT)";
       }
     }
 
     container related {
-      // placeholder where other services can augment for their info
-    }
-  }
-
-  // primary configuration tree for this module
-  list subscriber {
-    uses subscriber-controller;
-    key 'id';
-
-    description
-      "Authorative list of all subscriber instances";
-
-    leaf humanReadableName {
       config false;
-      type string {
-        pattern '^cordSubscriber-\w+$';
-      }
-    }
-    action create;
-    action delete;
-  }
-
-  // here we augment the /api/tenant/cord API configuration tree in 'xos' module
-  augment "/xos:api/xos:tenant/xos:cord" {
-    container subscriber {
-      //path "/subscriber";
+      description
+        "placeholder where other services can augment for info they want to
+         share (READ-ONLY)";
     }
   }
-  
 }
diff --git a/schema/corenova-node.yang b/schema/corenova-node.yang
new file mode 100644
index 0000000..104c2e4
--- /dev/null
+++ b/schema/corenova-node.yang
@@ -0,0 +1,52 @@
+module corenova-node {
+  namespace "urn:corenova:node";
+  prefix node;
+
+  organization
+    "Corenova Technologies, Inc.";
+
+  contact
+    "Peter K. Lee <peter@corenova.com>";
+
+  description
+    "This module defines extensions to dynamically control schema node
+     display and access overlay controls";
+
+  feature corenova-node {
+    description
+      "this is to indicate the agent supports dynamic schema node
+       link/map/view.";
+  }
+    
+  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 {
+      yin-element true;
+    }
+  }
+
+  extension view {
+    description
+      "Informs the interface layers that only the data nodes referenced
+       within the value argument should be made visible to the
+       consumer.";
+    argument value;
+  }
+}
diff --git a/schema/xos-core.yang b/schema/xos-core.yang
index b0d4eaf..82d1a7e 100644
--- a/schema/xos-core.yang
+++ b/schema/xos-core.yang
@@ -10,11 +10,28 @@
     "Larry Peterson <llp@onlab.us>
      Peter K. Lee <peter@corenova.com>";
   
+  description
+   "This module contains a collection of core models for XOS.
+
+    Copyright (c) 2016 ON.LAB and the persons identified as authors of
+    the code.  All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, is permitted pursuant to, and subject to the license
+    terms of the Apache License, Version 2.0 which accompanies this
+    distribution, and is available at
+    (http://www.apache.org/licenses/LICENSE-2.0).";
+  
+  revision 2016-07-14 {
+    description "Initial revision.";
+  }
+  
   import ietf-yang-types { prefix yang; }
   import ietf-inet-types { prefix inet; }
 
-  revision 2016-07-14 {
-    description "Initial revision.";
+  feature synchronizer {
+    description
+      "Enables configuration synchronization to the distributed store.";
   }
   
   identity kind;
@@ -31,7 +48,6 @@
   }
 
   grouping tenant-root {
-
     description
       "A Tenant Root is one of the things that can sit at the root of a chain
        of tenancy. This object represents a node.";
@@ -63,7 +79,6 @@
       config false;
       // not exactly clear how this is populated
     }
-    
   }
   
   grouping subscriber {
@@ -71,22 +86,21 @@
       refine kind { default subscriber; }
     }
     // seems we should have interesting attributes specific to subscriber?
-    
   }
 
-  // main configuration tree for XOS
+  /*** main configuration tree for XOS ***/
 
   container api {
+    description
+      "The primary configuration interaction endpoint";
+    
     container service {
-      // placeholder endpoint for services
+      description
+        "placeholder endpoint for services to augment";
     }
     container tenant {
-      container cord {
-        // placeholder endpoint for augment
-      }
-      container onos {
-        // placeholder endpoint for augment
-      }
+      description
+        "placeholder endpoint for tenants to augment";
     }
   }
   
diff --git a/schema/yang-node-link.yang b/schema/yang-node-link.yang
deleted file mode 100644
index 1b93538..0000000
--- a/schema/yang-node-link.yang
+++ /dev/null
@@ -1,5 +0,0 @@
-module yang-node {
-  extension link {
-    argument name;
-  }
-}
diff --git a/src/cord-core.coffee b/src/cord-core.coffee
new file mode 100644
index 0000000..1d27a26
--- /dev/null
+++ b/src/cord-core.coffee
@@ -0,0 +1,17 @@
+#
+# Author: Peter K. Lee (peter@corenova.com)
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+
+require('yang-js').register()
+
+module.exports = require('../schema/cord-core.yang').bind {
+
+  '/cord/subscriber/humanReadableName': -> "cordSubscriber-#{@get '../id'}"
+
+  '/cord/subscriber/delete': (input, resolve, reject) -> reject "not yet implemented"
+}
diff --git a/src/cord-device.coffee b/src/cord-device.coffee
new file mode 100644
index 0000000..ce6c892
--- /dev/null
+++ b/src/cord-device.coffee
@@ -0,0 +1,16 @@
+#
+# Author: Peter K. Lee (peter@corenova.com)
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+
+require('yang-js').register()
+
+module.exports = require('../schema/cord-device.yang').bind {
+
+  '/{device}/features/update': (input, resolve, reject) -> reject "not yet implemented"
+  
+}
diff --git a/src/cord-subscriber.coffee b/src/cord-subscriber.coffee
new file mode 100644
index 0000000..7563aa7
--- /dev/null
+++ b/src/cord-subscriber.coffee
@@ -0,0 +1,32 @@
+#
+# Author: Peter K. Lee (peter@corenova.com)
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+
+require('yang-js').register()
+
+module.exports = require('../schema/cord-subscriber.yang').bind {
+
+  '/{subscriber}':
+    # auto-computed properties
+    'device/subscriber': -> @get '../..' 
+
+    # action bindings
+    'device/create': (input, resolve, reject) -> reject "TBD"
+    'device/update': (input, resolve, reject) -> reject "TBD"
+    'device/delete': (input, resolve, reject) -> reject "TBD"
+
+  '/{subscriber-controller}':
+    # auto-computed properties
+    'related': -> new Error "will return related objects once implemented"
+
+    # action bindings
+    'features/update': (input, resolve, reject) -> reject "TBD"
+    'identity/update': (input, resolve, reject) -> reject "TBD"
+    
+}    
+
diff --git a/src/server.coffee b/src/server.coffee
new file mode 100644
index 0000000..7e7b46c
--- /dev/null
+++ b/src/server.coffee
@@ -0,0 +1,11 @@
+yang = require('yang-js').register()
+
+require('yang-express').run {
+  
+  port: 5050
+  models: [
+    yang.require 'cord-core'
+  ]
+  data: require '../sample-data.json'
+  
+}
