introduce cord-service-volt.yang and cord-service-vsg.yang. complete re-rendering of the underyling service/tenancy associations. need to review further with team.
diff --git a/schema/xos-core.yang b/schema/xos-core.yang
index 44a702c..1137c28 100644
--- a/schema/xos-core.yang
+++ b/schema/xos-core.yang
@@ -35,8 +35,8 @@
   }
   
   identity kind;
-  identity generic    { base kind; }
-  identity subscriber { base kind; }
+  identity generic { base kind; }
+  identity service { base kind; }
 
   typedef unique-identifier {
     description "defines valid formats for external reference id";
@@ -46,14 +46,23 @@
       type inet:uri;
     }
   }
+  typedef bandwidth {
+    type uint32 {
+      range 1000000..max; // should be at least 1 Mbps?  
+    }
+    units 'bps';
+  }
+  typedef vlan {
+    type uint16 { range 0..4095; }
+  }
 
-  grouping xos-attribute {
+  grouping attribute-pair {
     leaf name  { type string { length 0..128; } }
     leaf value { type string; }
     // don't need pointer back to service
   }
 
-  grouping xos-sync-record {
+  grouping sync-record {
     description "Synchronizer-specific properties for model records";
     
     leaf created { type yang:date-and-time; }
@@ -100,25 +109,18 @@
     }
   }
   
-  grouping xos-base {
+  grouping base-common {
     leaf id {
       type unique-identifier;
       mandatory true;
     }
-    leaf kind {
-      type identityref {
-        base kind;
-      }
-      default generic;
-    }
     leaf name {
       type string {
         length 0..255;
       }
     }
-    
     list attribute {
-      uses xos-attribute;
+      uses attribute-pair;
       key name;
       status deprecated;
       reference "XOS: service-specific-attribute";
@@ -129,15 +131,14 @@
       mandatory true;
       status deprecated;
     }
-
     container record {
       if-feature synchronizer;
-      uses xos-sync-record;
+      uses sync-record;
     }
   }
 
   grouping tenant-root {
-    uses xos-base {
+    uses base-common {
       refine 'name' {
         description "Specify name of the TenantRoot";
       }
@@ -167,11 +168,17 @@
   }
 
   grouping service {
-    uses xos-base {
+    uses base-common {
       refine 'name' {
         description "Name of the Service";
       }
     }
+    leaf kind {
+      type identityref {
+        base kind;
+      }
+      default generic;
+    }
     leaf description {
       type string {
         length 0..254;
@@ -197,6 +204,22 @@
       leaf public  { type string { length 0..1024; } }
       leaf private { type string { length 0..1024; } }
     }
+    list provider {
+      description
+        "Each entry represents a provider of the service. Each unique service
+         should augment this block with service specific attributes.";
+      key id;
+      uses xos:provider;
+    }
+    list subscriber {
+      description
+        "Each entry represents a subscriber of the service. Each unique service
+         should augment this block with service specific attributes.";
+      key id;
+      uses xos:subscriber;
+      notification subscriber-added;
+      notification subscriber-deleted;
+    }
     
     // TOOD: need to better understand relationship between Service and Slice
     action scale {
@@ -207,7 +230,7 @@
   }
 
   grouping tenancy {
-    uses xos-base;
+    uses base-common;
 
     choice provider {
       description "only one type of provider node is valid.";