diff --git a/schema/cord-device.yang b/schema/cord-device.yang
new file mode 100644
index 0000000..df77138
--- /dev/null
+++ b/schema/cord-device.yang
@@ -0,0 +1,49 @@
+module cord-device {
+  namespace "urn:onlab:cord:device";
+  prefix cord-dev;
+  yang-version 1.1;
+
+  organization
+   "Open Networking Lab (CORD) / Corenova Technologies";
+
+  contact
+    "Larry Peterson <llp@onlab.us>
+     Peter K. Lee <peter@corenova.com>";
+  
+  import ietf-yang-types { prefix yang; }
+  
+  revision 2016-07-14 {
+    description "Initial revision.";
+  }
+
+  typedef bandwidth {
+    type uint32 {
+      range 1000000..max; // should be at least 1 Mbps?  
+    }
+    units 'bps';
+  }
+  
+  grouping device {
+    leaf mac { type yang:mac-address; mandatory true; }
+    leaf identity { type string; }
+
+    leaf subscriber {
+      type instance-identifier;
+      config false;
+    }
+    
+    container features {
+      // how are the uplink/downlink speeds defined here related to 'subscriber'?
+      leaf uplink-speed {
+        type bandwidth;
+        default 1000000000;      
+      }
+      leaf downlink-speed {
+        type bandwidth;
+        default 1000000000;      
+      }
+      action update;
+    }
+    action save;
+  }
+}
diff --git a/schema/cord-subscriber.yang b/schema/cord-subscriber.yang
new file mode 100644
index 0000000..ec37eb3
--- /dev/null
+++ b/schema/cord-subscriber.yang
@@ -0,0 +1,192 @@
+module cord-subscriber {
+  namespace "urn:onlab:cord:subscriber";
+  prefix cord-sub;
+  yang-version 1.1;
+
+  organization
+   "Open Networking Lab (CORD) / Corenova Technologies";
+
+  contact
+    "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; }
+
+  revision 2016-07-14 {
+    description "Initial revision.";
+  }
+  
+  identity cord-subscriber { base xos:subscriber; }
+
+  grouping subscriber {
+    uses xos:subscriber {
+      refine kind { default cord-subscriber; }
+    }
+    leaf status {
+      type enumeration {
+        enum "enabled" {
+          description "Enabled";
+          value 1;
+        }
+        enum "suspended" {
+          description "Suspended";
+        }
+        enum "delinquent" {
+          description "Delinquent";
+        }
+        enum "violation" {
+          description "Copyright Violation";
+        }
+      }
+      default enabled;
+    }
+    leaf demo { type boolean; default false; }
+    leaf uplink-speed {
+      type dev:bandwidth;
+      default 1000000000;      
+    }
+    leaf downlink-speed {
+      type dev:bandwidth;
+      default 1000000000;      
+    }
+
+    container services {
+      description
+        "Contains various services available to the subscriber";
+      
+      container cdn {
+        leaf enabled { type boolean; default false; }
+      }
+      container firewall {
+        leaf enabled { type boolean; default false; }
+        leaf-list rules {
+          // should qualify further
+          type string;
+        }
+      }
+      container url-filter {
+        leaf enabled { type boolean; default false; }
+        leaf level {
+          type enumeration {
+            enum "PG";
+            // other types of level...
+          }
+        }
+        leaf-list rules {
+          // should qualify further
+          type string;
+        }
+      }
+      container uverse {
+        leaf enabled { type boolean; default false; }
+      }
+    }
+
+    list devices {
+      uses dev:device;
+      key 'mac';
+
+      action create {
+        input {
+          leaf mac {
+            type yang:mac-address;
+            mandatory true;
+          }
+          // other acceptable attributes that can be used during create
+        }
+      }
+      action update {
+        input {
+          leaf mac {
+            type yang:mac-address;
+            //must "../.[mac = current()]";
+            mandatory true;
+          }
+          // other acceptable attributes for updating
+        }
+      }
+      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";
+    }
+  }
+
+  grouping subscriber-controller {
+    uses subscriber;
+
+    container features {
+      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)";
+      }
+    }
+    
+    container identity {
+      node:link account-num {
+        path "../../service-specific-id";
+      }
+      node:link name {
+        path "../../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" {
+    node:link subscriber { path "/subscriber"; }
+  }
+  
+}
diff --git a/schema/old/xos-core-service.yang b/schema/old/xos-core-service.yang
new file mode 100644
index 0000000..3923221
--- /dev/null
+++ b/schema/old/xos-core-service.yang
@@ -0,0 +1,120 @@
+module xos-core-service {
+  namespace "urn:xos:core:service";
+  prefix xos-cs;
+
+  import complex-types { prefix ct; }
+
+  revision 2015-10-01 {
+    description "Initial revision.";
+  }
+
+  grouping service-attribute {
+    leaf name { type string { length 128; } }
+    leaf value { type string { length 1024; } }
+    leaf service {
+      type instance-identifier { ct:instance-type Service; require-instance true; }
+    }
+  }
+
+  grouping service-role {
+    leaf role {
+      type enumeration {
+        enum "admin";
+        //enum "Admin";
+      }
+    }
+  }
+
+  grouping common-model-attr {
+    leaf kind {
+      type string { length 30; }
+      default "generic";
+    }
+    leaf name { type string { length 255; } }
+  }
+
+  ct:complex-type ServiceElement {
+    ct:abstract true;
+    leaf enabled { type boolean; default true; }
+  }
+  
+  ct:complex-type Service {
+    ct:extends ServiceElement;
+    
+    leaf description {
+      type string { length 255; }
+      description "Description of Service";
+    }
+    leaf published { type boolean; default true; }
+
+    uses common-model-attr {
+      refine kind {
+        description "Kind of Service";
+      }
+      refine name {
+        description "Service Name";
+      }
+    }
+  }
+
+  ct:complex-type User {
+    ct:extends ServiceElement;
+    // TBD - should go to a separate xos-core-user module or such
+  }
+  
+  ct:complex-type ServicePrivilege {
+    key "user-service-role";
+    
+    leaf user {
+      type instance-identifier { ct:instance-type User; require-instance true; }
+    }
+    leaf service {
+      type instance-identifier { ct:instance-type Service; }
+    }
+    uses service-role;
+  }
+
+  ct:complex-type TenantRoot {
+    ct:extends ServiceElement;
+    
+    description
+      "A tenantRoot is one of the things that can sit at the root of a chain
+        of tenancy. This object represents a node.";
+    uses common-model-attr;
+  }
+
+  ct:complex-type ContainerImage {
+    // TBD
+  }
+  
+  ct:complex-type Tenancy {
+    ct:extends ServiceElement;
+    
+    description
+      "A Tenancy describes relationship between a subscriber and a provider";
+    
+    uses common-model-attr;
+
+    leaf provider { type instance-identifer { ct:instance-type Service; } }
+    leaf subscriber {
+      type instance-identifier {
+        ct:instance-type ServiceElement;
+      }
+    }
+
+    // adding stuff from TenantWithContainer here...
+    leaf creator { type instance-identifier { ct:instance-type User; } }
+    leaf image { type instance-identifier { ct:instance-type ContainerImage; } }
+  }
+
+  ct:complex-type Subscriber {
+    ct:extends TenantRoot;
+    refine kind { default "Subscriber"; }
+  }
+
+  ct:complex-type Provider {
+    ct:extends TenantRoot;
+    refine kind { default "Provider"; }
+  }
+  
+}
diff --git a/schema/xos-core.yang b/schema/xos-core.yang
new file mode 100644
index 0000000..6d4244c
--- /dev/null
+++ b/schema/xos-core.yang
@@ -0,0 +1,94 @@
+module xos-core {
+  namespace "urn:onlab:xos:core";
+  prefix xos;
+  yang-version 1.1;
+
+  organization
+   "Open Networking Lab (XOS) / Corenova Technologies";
+
+  contact
+    "Larry Peterson <llp@onlab.us>
+     Peter K. Lee <peter@corenova.com>";
+  
+  import ietf-yang-types { prefix yang; }
+  import ietf-inet-types { prefix inet; }
+
+  revision 2016-07-14 {
+    description "Initial revision.";
+  }
+  
+  identity kind;
+  identity generic    { base kind; }
+  identity subscriber { base kind; }
+
+  typedef unique-identifier {
+    description "defines valid formats for external reference id";
+    type union {
+      type yang:uuid;
+      type inet:uri;
+      type uint32 { range 1..max; }
+    }
+  }
+
+  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.";
+
+    leaf id {
+      type unique-identifier;
+      config false;
+      mandatory true;
+    }
+    leaf kind {
+      type identityref {
+        base kind;
+      }
+      default generic;
+    }
+    leaf name {
+      type string {
+        length 0..255;
+      }
+      description "Specify name of the TenantRoot";
+    }
+
+    leaf service-specific-attribute { type string; }
+    leaf service-specific-id {
+      type unique-identifier;
+      mandatory true;
+    }
+
+    list subscribed-tenants {
+      config false;
+      // not exactly clear how this is populated
+    }
+    
+  }
+  
+  grouping subscriber {
+    uses tenant-root {
+      refine kind { default subscriber; }
+    }
+    // seems we should have interesting attributes specific to subscriber?
+    
+  }
+
+  // main configuration tree for XOS
+
+  container api {
+    container service {
+      // placeholder endpoint for services
+    }
+    container tenant {
+      container cord {
+        // placeholder endpoint for augment
+      }
+      container onos {
+        // placeholder endpoint for augment
+      }
+    }
+  }
+  
+}
