diff --git a/docs/README.md b/docs/README.md
index c83d24d..f37af2b 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -1,11 +1,32 @@
 # Defining Models for CORD
 
-XOS implements a model-based service control plane for CORD.
-This guide describes the how models are expressed in XOS and
-documents the toolchain used to auto-generate various
-elements of CORD from these models.
+CORD adopts a model-based design, which is to say all aspects
+of operating and managing CORD is mediated by a model-based
+control plane. XOS is the component in CORD that implements
+this control plane.
 
-It also describes the role of Synchronizers in bridging the CORD data
-model with the backend components (e.g., VNFs, micro-services,
-SDN control apps) that implement CORD's service data plane.
+This guide describes XOS, and the role it plays in the CORD Controller.
+XOS is not a monolithic component. It is best viewed as having
+three inter-related aspects, and this guide is organized accordingly.
+
+First, XOS defines a [modeling framework](dev/xproto.md), which
+includes both a modeling language (*xproto*) and a generative
+toolchain (*xosgen*). The core abstractions that define CORD's
+behavior are expressed in xproto, with xosgen then used to
+generate code for several elements required to control CORD
+(including an API that serves the set of models that have been
+loaded into XOS).
+
+Second, CORD is based on a core set of models. These models are
+expressed and realized using XOS, but they are architecturally
+independent of XOS. These models are central to defining what
+CORD **is**, including its [core abstractions](core_models.md)
+and the [security policies](security_policies.md) that govern how
+various principals can act on those abstractions in a multi-tenant
+environment.
+
+Third, XOS defines a [synchronization framework](dev/synchronizers.md)
+that actuates the CORD data model. This framework is reponsible for
+driving the underlying components configured into CORD (for example,
+services, access devices) towards the desired state.
 
diff --git a/docs/core_models.md b/docs/core_models.md
index dd6ff86..7458194 100644
--- a/docs/core_models.md
+++ b/docs/core_models.md
@@ -1,109 +1,161 @@
-#Core Models
+# Core Models
 
-CORD adopts a model-based design. Each service configured into a
-given CORD deployment has a service-specific model, but CORD
-also defines a set of core models. Service-specific models are
-anchored in these core models.
+The XOS modeling framework provides a foundation for building CORD,
+but it is just a means to defining the set of core models that effectively
+specify CORD's architecture. 
 
-CORD's core models are defined by a set of [xproto](dev/xproto.md)
-specifications. They are defined in their full detail in the source
-code. See:
-[core.xproto](https://github.com/opencord/xos/blob/master/xos/core/models/core.xproto).
-The following describes these core models -- along with the
-relationships (bindings) among them -- in words.
+## Overview
+
+CORD's core starts with the **Service** model, which represents
+all functionality that can be on-boarded into CORD. The power of the
+Service model is that it is implementation-agnostic, supporting both
+*server-based* services (e.g., legacy VNF running in VMs and
+micro-services running in containers) and *switch-based* services
+(e.g., SDN control applications that installs flow rules into
+white-box switches).
+
+To realize this range of implementation choices, each service is bound
+a set of **Slice** models, each of which represents a
+combination of virtualized compute resources (both containers and VMs)
+and virtualized network resources (virtual networks).
+
+Next, a **ServiceDependency** model represents a relationship betwee
+a pair of services: a *subscriber*  and a *provider*. This dependency is
+parameterized by a **connect_method** field that defines how the two
+services are interconnected in the underlying network data plane. The
+approach is general enough to interconnect two server-based services,
+two switch-based services, or a server-based and a switch-based
+service pair. This makes it possible to construct a service graph
+without regard to how the underlying services are implemented.
+
+For a service graph defined by a collection of Service and
+ServiceDependency models, every time a subscriber requests service
+(e.g., connects their cell phone or home router to CORD), a
+**ServiceInstance** object is created to represent the virtualized
+instance of each service traversed through the service graph on behalf
+of that subscriber. Different subscribers may traverse different paths
+through the service graph, based on their customer profile, but the
+end result is a collection of interconnected ServiceInstance objects,
+forming the CORD-equivalent of a service chain. (This "chain" is often
+linear, but because the model allows for a many-to-many relationship
+among service instances, this "chain" can from an arbitrary graph.)
+
+Each node in this service chain (graph of ServiceInstance objects)
+represents some combination of virtualized compute and network
+resources; the service chain is not necessarily implemented by a
+sequence of containers or VMs. That would be one possible
+incarnation in the underlying service data plane, but how each
+individual service instance is realized in the underlying resources
+is an implementation detail. Moreover, because the data model
+provides a way to represent this end-to-end service chain, it is
+possible to access and control resources on a per-subscriber basis,
+in addition to controlling them on a per-service basis.
+
+Finally, each model defines a set of fields that are used to either
+configure/control the underlying 
+component (these fields are said to hold *declarative state*) or to 
+record operational data about the underlying component (these 
+fields are said to hold *feedback state*). For more information 
+about declarative and feedback state, and the role they play in 
+synchornizing the data model with the backend components,
+read about the [Synchronizer Architecture](dev/sync_arch.md). 
+
+## Model Glossary 
+
+CORD's core models are defined by a set of [xproto](dev/xproto.md) 
+specifications. They are defined in their full detail in the source 
+code (see
+[core.xproto](https://github.com/opencord/xos/blob/master/xos/core/models/core.xproto)).
+The following summarizes these core models -- along with the 
+key relationships (bindings) among them -- in words. 
 
 * **Service:** Represents an elastically scalable, multi-tenant
-program, including the means to instantiate, control, and scale
-functionality.
+program, including the declarative state needed to instantiate,
+control, and scale functionality.
 
-   - Bound to a set of Slices that contains the collection of
+   - Bound to a set of `Slices` that contains the collection of
       virtualized resources (e.g., compute, network) in which the
-      Service runs.
+      `Service` runs.
 
   In many CORD documents you will see mention of each service also
-  having a "controller" but this effectively corresponds to the
-  *Service* model itself, which is used to generate a "control
-  interface" for the service. There is no explicit *Controller* model
-  bound to a service. (There actually is a *Controller* model, but it
-  represents the controller for a backend infrastructure service, such
-  as OpenStack.)
+  having a "controller" which effectively corresponds to the
+  `Service` model itself (i.e., its purpose is to generate a "control
+  interface" for the service). There  is no "Controller" model
+  bound to a service. (Confusingly, CORD does include a `Controller` 
+  model, but it represents information about OpenStack. There is
+  also a `ServiceController` construct in the TOSCA interface for
+  CORD, which provides a means to load the `Service` model for
+  a given service into CORD.)
    
+* **ServiceDependency:** Represents a dependency between a *Subscriber*
+service on a *Provider*  service. The set of `ServiceDependency` 
+and `Service` models defined in CORD collectively represent the edges 
+and verticies of a *Service Graph*, but there is no explicit
+"ServiceGraph" model in CORD. The dependency between a pair of
+services is parameterized by the `connect_method` by which the service are
+interconnected in the data plane.Connect methods include:
+
+   - **None:** The two services are not connected in the data plane. 
+   - **Private:** The two services are connected by a common private network. 
+   - **Public:** The two services are connected by a publicly routable 
+   network. 
+   
+
 * **ServiceInstance:** Represents an instance of a service
   instantiated on behalf of a particular tenant. This is a
   generalization of the idea of a Compute-as-a-Service spinning up
   individual "compute instances," or using another common
-  example, the *ServiceInstance* corresponding to a Storage Service
+  example, the `ServiceInstance` corresponding to a Storage Service
   might be called a "Volume" or a "Bucket." Confusingly, there are
-  also instances of a *Service* model that represent different
+  also instances of a `Service` model that represent different
   services, but this is a consequence of standard modeling
-  terminology, whereas  *ServiceInstance* is a core model in CORD
-  (and yes, there are "instances of the *ServiceInstance* model").
+  terminology, whereas  `ServiceInstance` is a core model in CORD
+  (and yes, there are instances of the `ServiceInstance` model).
 
-* **ServiceDependency:** Represents a dependency between a *Subscriber*
-Service on a *Provider*  Service. The set of ServiceDependency 
-and Service models defined in CORD collectively represent the edges
-and verticies of a *Service Graph*. (There is no explicit **ServiceGraph** model.)
-The dependency between a pair of services is parameterized by the method
-by which they are interconnected in the data plane. Connect methods include:
+* **ServiceInstanceLink:** Represents a logical connection between
+`ServiceInstances` of two `Services`. A related model, `ServiceInterface`,
+types the `ServiceInstanceLink` between two `ServiceInstances`. A
+connected sequence of `ServiceInstances` and `ServiceInstanceLinks` form
+what is often called a *Service Chain*, but there is no explicit
+"ServiceChain" model in CORD.
 
-   - **None:** The two services are not connected in the data plane.
-   - **Private:** The two services are connected by a common private network.
-   - **Public:** The two services are connected by a publicly routable
-   network.
-   
+* **Slice:** Represents a distributed resource container that includes
+the compute and network resources that belong to (are used by) some
+`Service`.
 
-* **Slice:** A distributed resource container that includes the compute and 
-network resources that belong to (are used by) some Service.
+   - Bound to a set of `Instances` that provide compute resources for
+      the `Slice`.
 
-   - Bound to a (possibly empty) set of Instances that provide compute
-      resources for the Slice. 
-
-   - Bound to a set of Networks that connect the Slice's Instances to
-      each other, and connect this Slice to the Slices of other Services.
+   - Bound to a set of `Networks` that connect the  slice's `Instances` to
+      each other.
   
-   - Bound to a Flavor that defines how the Slice's Instances are 
-      scheduled. 
+   - Bound to  a default `Flavor` that represents a bundle of
+      resources (e.g., disk, memory, and cores) allocated to an
+      instance. Current flavors borrow from EC2. 
 
-   - Bound to an Image that boots in each of the Slice's Instances.
+   - Bound to a default `Image` that boots in each of the slice's`Instances`.
+      Each `Image` implies a virtualization layer (e.g., Docker, KVM).
 
 
 * **Instance:** Represents a single compute instance associated
    with a Slice and instantiated on some physical Node. Each Instance
-   is of some isolation type:
+   is of some `isolation` type: `vm` (implemented as a KVM virtual machine),
+   `container` (implemented as a Docker container), or `container_vm`
+   (implemented as a Docker container running inside a KVM virtual machine).
 
-   - **VM:** The instance is implemented as a KVM virtual machine.
-   - **Container:** The instance is implemented as a Docker container.
-   - **Container-in-VM:** The instance is implemented as a Docker
-   container running inside a KVM virtual machine.
-   
+* **Network:** Represents a virtual network associated with a `Slice`. The
+behavior of a given `Network`is defined by a `NetworkTemplate`, which
+specifies a set of parameters, including `visibility` (set to `public` or
+`private`),  `access` (set to `direct` or `indirect`), `translation`
+(set to `none`or `nat`), and `topology_kind` (set to `bigswitch`,
+`physical` or `custom`). There is also a `vtn_kind` parameter
+(indicating the `Network` is manged by VTN), with possible settings:
+`PRIVATE`, `PUBLIC`, `MANAGEMENT_LOCAL`, `MANAGEMENT_HOST`,
+`VSG`, or `ACCESS__AGENT`.
 
-* **Network:** A virtual network associated with a Slice. Networks are
-of one of the following types:
+* **Node:** Represents a physical server that can be virtualized and host Instances.
 
-   - **PRIVATE:** Virtual network for the instances in the same service
-   - **PUBLIC:** Externally accessible network
-   - **MANAGEMENT_LOCAL:** Instance management network which does not span
-      compute nodes, only accessible from the host machine
-   - **MANAGEMENT_HOST:** Real management network which spans compute and
- 	  head nodes
-   - **ACCESS_AGENT:** Network for access agent infrastructure service
-	  
-
-* **Image:** A bootable image that runs in a virtual machine. Each 
-  Image implies a virtualization layer (e.g., Docker, KVM), so the latter 
-  need not be a distinct object. 
-
-* **Flavor:** Represents a bundle of resources (e.g., disk, memory,
-   and cores) allocated to an instance. Current flavors borrow from EC2. 
-
-* **Controller:** Represents the binding of an object
-  in the data model to a back-end element (e.g., an OpenStack head
-  node).  Includes the credentials required to invoke the backend
-  resource.
-
-* **Node:** A physical server that can be virtualized and host Instances.
-
-   - Bound to the Site where the Node is physically located.
+   - Bound to the `Site` where the `Node` is physically located.
 
 
 * **User:** Represents an authenticated principal that is granted a set of
@@ -113,14 +165,14 @@
 * **Privilege:** Represents the right to perform a set of read, write,
   or grant operations on a set of models, objects, and fields.
 
-* **Site:** A logical grouping of Nodes that are co-located at the
-  same geographic location, which also typically corresponds to the
-  Nodes' location in the physical network.
-
-  - Bound to a set of Users that are affiliated with the Site.
-
-  - Bound to a set of Nodes located at the Site.
-
+* **Site:** Represents a logical grouping of `Nodes` that are
+  co-located at the same geographic location, which also typically
+  corresponds to the nodes' location in the physical network.
   The typical use case involves one configuration of a CORD POD 
-  deployed at a single location. However, the underlying core includes 
+  deployed at a single location, although the underlying core includes 
   allows for multi-site deployments.
+
+  - Bound to a set of `Nodes` located at the `Site`.
+
+
+
diff --git a/docs/security_policies.md b/docs/security_policies.md
index d900788..f2ff50b 100644
--- a/docs/security_policies.md
+++ b/docs/security_policies.md
@@ -8,16 +8,16 @@
 within that object), and (2) the access type (whether it is a read, a
 write, or a privilege update).
 
-## Summary of Policy Mechanism
-
 The mechanism for expressing these policies is provided by xproto’s
 policy extensions. The policies are enforced at the API boundary. When
 an API call is made, the appropriate policy is executed to determine
 whether or not access should be granted, and an audit trail is left
-behind. (Note: auditing is a TODO). The policy enforcers are
+behind. The policy enforcers are
 auto-generated by the generative toolchain as part of the model
 generation process.
 
+> Note: Auditing is still todo.
+
 Policies are generic logic expressions and can operate on any model
 or on the environment, but they frequently use the *Privilege* model.
 Specifically, when a policy cannot be expressed as a general principle
@@ -27,9 +27,6 @@
 object may be created to indicate that a user who is not a slice’s
 creator has admin privileges on it.
 
-Details on how policies are encoded can be found elsewhere.
-This document is about the “what” rather than the “how.”
-
 The set of security policies is being bootstrapped into the following
 state:
 
@@ -47,6 +44,21 @@
 *Grant*. Grant arbitrates access to Privilege objects (e.g., a slice
 admin could grant slice admin privileges to a user).
 
-The current policies are defined as follows:
+The current policies are defined in
+[core.xproto](https://github.com/opencord/xos/blob/master/xos/core/models/core.xproto). For
+example, the following `site_policy` controls access to instances of
+the `Site` model:
 
-**To be included...*
+```python
+// Everyone has read access
+// For write access, you have to be a site_admin
+policy site_policy <
+         ctx.user.is_admin
+         | (ctx.write_access -> exists Privilege:
+		 Privilege.object_type = "Site" & Privilege.object_id = obj.id
+		 & Privilege.accessor_id = ctx.user.id & Privilege.permission
+		 = "role:admin") >
+```
+
+For more information about security policy definitions, read about
+[xproto and xosgen](dev/xproto.md).
