diff --git a/linux.md b/linux.md
index 6e22f34..0c03bd9 100644
--- a/linux.md
+++ b/linux.md
@@ -191,8 +191,8 @@
 
 ## Deploy CORD Helm Charts
 
-Deploy the service profiles corresponding to the `xos-core`,
-`base-kubernetes`, and `demo-simpleexampleservice` helm-charts:
+Deploy the Helm Charts corresponding to the `xos-core`, plus
+the service profiles `base-kubernetes` and `demo-simpleexampleservice`:
 
 ```shell
 cd ~/cord/helm-charts
diff --git a/macos.md b/macos.md
index 59e4b6d..95476f2 100644
--- a/macos.md
+++ b/macos.md
@@ -87,62 +87,132 @@
 
 ## Bring Up CORD
 
-Deploy the service profiles corresponding to the `xos-core`,
-`base-kubernetes`, and `demo-simpleexampleservice` helm-charts.
-To do this, execute the following from the `~/cord/helm-charts` directory.
+An instantiation of CORD typically includes a set of micro-services
+that collectively implement the *Platform* plus a *Profile* that
+includes a collection of access devices and VNFs. In this quick start
+we are going to bring up a subset of the Platform that includes XOS,
+Kafka, Monitoring, and Logging (i.e., everything except ONOS), and
+then instead of a Profile tied to a specific access technology, we are
+going to just bring up a demonstration service.
 
-```shell
-helm dep update xos-core
-helm install xos-core -n xos-core
-helm dep update xos-profiles/base-kubernetes
-helm install xos-profiles/base-kubernetes -n base-kubernetes
-helm dep update xos-profiles/demo-simpleexampleservice
-helm install xos-profiles/demo-simpleexampleservice -n demo-simpleexampleservice
+### Install XOS 
+
+To install `xos-core` (plus affiliated micro-services) into your 
+Kubernetes cluster, execute the following from the `~/cord/helm-charts`
+directory:
+
+```shell 
+helm dep update xos-core 
+helm install xos-core -n xos-core 
 ```
 
-Use `kubectl get pods` to verify that all containers in the profile
-are successful and none are in the error state.
+You also need to start the Kafka message bus to catch event 
+notifications send by the various components:
 
-> **Note:** It will take some time for the various helm charts to
-> deploy and the containers to come online. The `tosca-loader`
-> container may error and retry several times as it waits for
-> services to be dynamically loaded. This is normal, and eventually
-> the `tosca-loader` will enter the completed state.
-
-When all the containers are successfully up and running, `kubectl get pod`
-will return output that looks something like this:
-
-```shell
-NAME                                           READY     STATUS    RESTARTS   AGE
-base-kubernetes-kubernetes-55c55bd897-rn9ln    1/1       Running   0          2m
-base-kubernetes-tosca-loader-vs6pv             1/1       Running   1          2m
-demo-simpleexampleservice-787454b84b-ckpn2     1/1       Running   0          1m
-demo-simpleexampleservice-tosca-loader-4q7zg   1/1       Running   0          1m
-xos-chameleon-6f49b67f68-pdf6n                 1/1       Running   0          2m
-xos-core-57fd788db-8b97d                       1/1       Running   0          2m
-xos-db-f9ddc6589-rtrml                         1/1       Running   0          2m
-xos-gui-7fcfcd4474-prhfb                       1/1       Running   0          2m
-xos-redis-74c5cdc969-ppd7z                     1/1       Running   0          2m
-xos-tosca-7c665f97b6-krp5k                     1/1       Running   0          2m
-xos-ws-55d676c696-pxsqk                        1/1       Running   0          2m
+```shell 
+helm repo add incubator http://storage.googleapis.com/kubernetes-charts-incubator 
+helm install -f examples/kafka-single.yaml --version 0.8.8 -n cord-kafka incubator/kafka 
 ```
 
-## Visit CORD Dashboard
+Use `kubectl get pods` to verify that all containers that implement XOS 
+(and Kafka) are successfully running. You should see output that looks 
+something like this:
+
+```shell 
+NAME                             READY     STATUS    RESTARTS   AGE 
+cord-kafka-0                     1/1       Running   0          3m  
+cord-kafka-zookeeper-0           1/1       Running   0          3m  
+xos-chameleon-58c5b847d6-48jvf   1/1       Running   0          11m 
+xos-core-7dc45f677b-pzhm6        1/1       Running   0          11m 
+xos-db-c49549b7f-mzs4n           1/1       Running   0          11m 
+xos-gui-7c96669d8c-8zkhq         1/1       Running   0          11m 
+xos-tosca-7f6cf85657-gzddq       1/1       Running   0          11m 
+xos-ws-5f47ff7d94-xg9f5          1/1       Running   0          11m 
+```
+
+### Install Monitoring and Logging 
+
+Although not required, we recommend that you also bring up two 
+auxilary services to capture and display monitoring and logging 
+information. This is done by executing the following Helm charts. 
+
+Monitoring (once running, access [Grafana](http://docs.grafana.org/) 
+Dashboard at port 31300):
+
+
+```shell 
+helm dep update nem-monitoring 
+helm install -n nem-monitoring nem-monitoring 
+```
+
+Logging (once running, access 
+[Kabana](https://www.elastic.co/guide/en/kibana/current/index.html) 
+Dashboard at port 30601):
+
+```shell 
+helm dep up logging 
+helm install -f examples/logging-single.yaml -n logging logging 
+```
+
+> **Note:** The `-f examples/logging-single.yaml` option says to 
+> not use persistent storage, which is fine for development or demo 
+> purposes, but not for operational deployments. 
+
+### Install SimpleExampleService
+
+Optionally, you can bring up a simple service to be managed by XOS. 
+This involves deploying two additional helm charts: `base-kubernetes`
+and `demo-simpleexampleservice`. Again from the `~/cord/helm-charts`
+directory, execute the following:
+
+```shell 
+helm dep update xos-profiles/base-kubernetes 
+helm install xos-profiles/base-kubernetes -n base-kubernetes 
+helm dep update xos-profiles/demo-simpleexampleservice 
+helm install xos-profiles/demo-simpleexampleservice -n demo-simpleexampleservice 
+```
+
+When all the containers are successfully up and running, `kubectl get 
+pod` will return output that looks something like this:
+
+
+```shell 
+NAME                                           READY     STATUS    RESTARTS   AGE 
+base-kubernetes-kubernetes-75d68b65bc-h594m    1/1       Running     0          6m 
+base-kubernetes-tosca-loader-ltdzg             0/1       Completed   4          6m 
+cord-kafka-0                                   1/1       Running     1          15m 
+cord-kafka-zookeeper-0                         1/1       Running     0          15m 
+demo-simpleexampleservice-cc8fbfb7-s4r68       1/1       Running     0          5m 
+demo-simpleexampleservice-tosca-loader-46qtg   0/1       Completed   4          5m 
+xos-chameleon-58c5b847d6-rcqff                 1/1       Running     0          16m 
+xos-core-7dc45f677b-27vc9                      1/1       Running     0          16m 
+xos-db-c49549b7f-589n6                         1/1       Running     0          16m 
+xos-gui-7c96669d8c-gcwsv                       1/1       Running     0          16m 
+xos-tosca-7f6cf85657-bf276                     1/1       Running     0          16m 
+xos-ws-5f47ff7d94-mpn7g                        1/1       Running     0          16m 
+```
+
+The two `tosca-loader` items with `Completed` status are jobs, as 
+opposed to pods. Their job is to load TOSCA-based provisioning and 
+configuration information into XOS, and so they run to complettion and 
+then terminate. It is not uncommon to see them in an `Error` state as 
+they retry while waiting for the corresponding services to come 
+on-line. 
+
+## Visit CORD Dashboard 
 
 Finally, to view the CORD dashboard, run the following:
 
-```shell
-minikube service xos-gui
+```shell 
+minikube service xos-gui 
 ```
 
-This will launch a window in your default browser. Administrator login
-and password are defined in `~/cord/helm-charts/xos-core/values.yaml`.
+This will launch a window in your default browser. Administrator login 
+and password are defined in `~/cord/helm-charts/xos-core/values.yaml`. 
 
-## Next Steps
-
-This completes our example walk-through. At this point, you can do one
-of the following:
+## Next Steps 
 
 * Explore other [installation options](README.md).
 * Take a tour of the [operational interfaces](operating_cord/general.md).
-* Drill down on the internals of [SimpleExampleService](simpleexampleservice/simple-example-service.md).
+* Learn more about using [XOS](https://guide.xosproject.org).
+* Drill down on the internals of [SimpleExampleService](https://guide.xosproject.org/simpleexampleservice/simple-example-service.html).
diff --git a/profiles/seba/known-issues.md b/profiles/seba/known-issues.md
new file mode 100644
index 0000000..a7e2d43
--- /dev/null
+++ b/profiles/seba/known-issues.md
@@ -0,0 +1,2 @@
+# Known Issues
+
