diff --git a/Makefile b/Makefile
index 5b2c180..e8a972f 100644
--- a/Makefile
+++ b/Makefile
@@ -13,7 +13,7 @@
 
 # Other repos with documentation that's included in the gitbook
 # edit the `git_refs` file with the commit/tag/branch that you want to use
-OTHER_REPO_DOCS ?= att-workflow-driver cord-tester fabric fabric-crossconnect hippie-oss kubernetes-service olt-service onos-service openolt openstack rcord simpleexampleservice exampleservice vrouter xos xos-gui xos-tosca
+OTHER_REPO_DOCS ?= att-workflow-driver cord-tester fabric fabric-crossconnect hippie-oss kubernetes-service olt-service onos-service openolt openstack rcord simpleexampleservice exampleservice vrouter xos xos-gui xos-tosca vtn-service
 GENERATED_DOCS  ?= # should be 'swagger', but currently broken
 ALL_DOCS        ?= $(OTHER_REPO_DOCS) $(GENERATED_DOCS)
 
diff --git a/SUMMARY.md b/SUMMARY.md
index 0a270ce..0d895d6 100644
--- a/SUMMARY.md
+++ b/SUMMARY.md
@@ -80,7 +80,7 @@
         * Operate
             * [Disable/Enable an ONU](profiles/seba/operate/onu-ops.md)
             * [Edit a Whitelist entry](profiles/seba/operate/whitelist-ops.md)
-            * [Disable/Delete an OLT](profiles/seba/operate/olt-ops.md)
+            * [Delete an OLT](profiles/seba/operate/olt-ops.md)
             * [Fix configuration errors](profiles/seba/operate/config-ops.md)
             * [Add a cross-connect in the AGG switch](profiles/seba/operate/agg-ops.md)
             * [Try a new version of *](profiles/seba/operate/k8s-helm-ops.md)
@@ -106,7 +106,7 @@
     * [AT&T Workflow Driver](att-workflow-driver/README.md)
     * [Kubernetes](kubernetes-service/kubernetes-service.md)
     * [OpenStack](openstack/openstack-service.md)
-    * [VTN](xos/xos_vtn.md)
+    * [VTN](vtn-service/README.md)
 * [Helm Reference](charts/helm.md)
     * [XOS-CORE](charts/xos-core.md)
     * [ONOS](charts/onos.md)
@@ -121,3 +121,6 @@
     * [Logging and Monitoring](charts/logging-monitoring.md)
     * [Persistent Storage](charts/storage.md)
     * [BBSim](charts/bbsim.md)
+    * [PONNET](charts/ponnet.md)
+    * [PONSIM v2](charts/ponsimv2.md)
+    * [PONSIM Pod](charts/ponsim-pod.md)
diff --git a/charts/onos.md b/charts/onos.md
index 7e713fb..a398039 100644
--- a/charts/onos.md
+++ b/charts/onos.md
@@ -13,6 +13,17 @@
 * REST/UI: 30120
 * Karaf debugger: 30555
 
+## Accessing the ONOS CLI
+
+Assuming you have not changed the default ports in the chart,
+you can use this command to access the ONOS CLI:
+
+```shell
+ssh karaf@<pod-ip> -p 30115
+```
+
+The default ONOS password is `karaf`.
+
 ## ONOS logging
 
 ### `onos-log-agent` Sidecar container
@@ -52,4 +63,4 @@
 
 ```shell
 helm install -n onos -f configs/onos-debug.yaml onos
-```
+```
\ No newline at end of file
diff --git a/charts/ponnet.md b/charts/ponnet.md
new file mode 100644
index 0000000..1c2831e
--- /dev/null
+++ b/charts/ponnet.md
@@ -0,0 +1,18 @@
+# PONNET Helm Chart
+
+The `ponnet` Helm chart installs and configures Kubernetes CNI plugins
+for [PONSIM](ponsimv2.md).  Currently it creates two Linux bridges, `pon0`
+and `pon1`, that allow a L2 dataplane to be created between the PONSIM
+RG and components upstream of the PONSIM OLT.  Note that the bridges
+are not actually created until [PONSIM](ponsimv2.md) is installed.
+
+You can install the chart using:
+
+```bash
+helm install -n ponnet ponnet
+```
+
+The chart modifies the underlying Kubernetes setup by installing the `bridge`
+CNI and adding configuration files to create the two bridges.  Kubernetes must
+be configured with CNI enabled.  Note that this chart does not seem to work
+on `minikube`.
diff --git a/charts/ponsim-pod.md b/charts/ponsim-pod.md
new file mode 100644
index 0000000..b84fea3
--- /dev/null
+++ b/charts/ponsim-pod.md
@@ -0,0 +1,10 @@
+# PONSIM Pod
+
+This chart just loads TOSCA for adding a PONSIM OLT and Mininet
+AGG Switch to XOS.  It is used by [SiaB](../profiles/seba/siab.md).
+
+You can install it using:
+
+```bash
+helm install -n ponsim-pod xos-profiles/ponsim-pod/
+```
diff --git a/charts/ponsimv2.md b/charts/ponsimv2.md
new file mode 100644
index 0000000..a50c74d
--- /dev/null
+++ b/charts/ponsimv2.md
@@ -0,0 +1,31 @@
+# PONSIM v2 Helm Chart
+
+The `ponsimv2` chart deploys the PON Simulator (PONSIM) containers
+(a virtual OLT, ONU, and RG) in the context of VOLTHA.
+This chart is used by [SiaB](../profiles/seba/siab.md).
+More details about PONSIM can be found in
+[its README](https://github.com/opencord/voltha/blob/master/ponsim/v2/README.md).
+
+You must install the [PONNET](ponnet.md) chart before installing this one.
+At that point you can install PONSIM using:
+
+```bash
+helm install -n ponsimv2 ponsimv2
+```
+
+After a successful install you will see containers like these running in the
+VOLTHA namespace:
+
+```bash
+$ kubectl -n voltha get pod
+NAME                                        READY     STATUS    RESTARTS   AGE
+...
+olt-77468cfccd-7ltzr                        1/1       Running   0          10m
+onu-6d7d5db8f-pk59s                         1/1       Running   0          10m
+rg-5fbddf9bdf-b292r                         1/1       Running   0          10m
+...
+```
+
+If any of the containers do not come up successfully, the issue is likely
+that the [PONNET](ponnet.md) chart is not loaded or was not able to create
+the two Linux bridges.
diff --git a/git_refs b/git_refs
index 8659fbc..9e9dd1a 100644
--- a/git_refs
+++ b/git_refs
@@ -28,4 +28,4 @@
 xos-gui               /docs    master
 xos-tosca             /docs    master
 xos                   /docs    master
-
+vtn-service           /docs    master
diff --git a/images/gui.png b/images/gui.png
new file mode 100644
index 0000000..4057a1c
--- /dev/null
+++ b/images/gui.png
Binary files differ
diff --git a/navigate.md b/navigate.md
index 7e3479e..f307986 100644
--- a/navigate.md
+++ b/navigate.md
@@ -1,10 +1,10 @@
 # Navigating CORD
 
-## Assembled in Layers
+## Assembled from Components
 
-A given instance of CORD is constructed from a set of disaggregated
+A given instance of CORD is assembled from a set of disaggregated
 components. This assembly is done according to the general pattern
-shown in the following conceptual diagram.
+shown in the following diagram.
 
 ![Layers](images/layers.png)
 
@@ -12,11 +12,13 @@
 
 * **Kubernetes:** All elements of the CORD control plane run in
   Kubernetes containers. CORD assumes a Kubernetes foundation,
-  but does not prescribe how the hardware or Kubernetes are installed.
+  but does not prescribe how Kubernetes (or the underlying hardware)
+  are installed.
 
 * **Platform:** The Platform layer consists of ONOS, XOS,
   Kafka, and collection of Logging and Monitoring micro-services,
-  all running on a Kubernetes foundation.
+  all running on a Kubernetes foundation. The platform is common
+  to all Profiles.
 
 * **Profile:** Each unique CORD configuration corresponds to a
   Profile. It consists of a set of services (e.g., access services,
@@ -27,8 +29,8 @@
   
 * **Workflow:** A Profile includes one or more workflows, each of
   which defines the business logic and state machine for one of the
-  access technologies. A workflow augments/parameterizes a Profile for
-  the target deployment environment; it is not a layer, per se.  SEBA's
+  access technologies. A workflow customizes a Profile for the target
+  deployment environment; it is not a layer, per se.  SEBA's
   [AT&T Workflow](profiles/seba/workflows/att-install.md) is an example.
 
 The diagram also shows a hardware bill-of-materials, which must be
diff --git a/operating_cord/gui.md b/operating_cord/gui.md
index 6a5db25..cf46522 100644
--- a/operating_cord/gui.md
+++ b/operating_cord/gui.md
@@ -35,3 +35,16 @@
 ```
 
 This command opens the GUI in your default browser.
+
+## Using the GUI
+
+The GUI lets you explore the data model and gives immediate feedback on the state
+of the system through real time notifications.
+
+Some basic features:
+
+1. **Navigation**: Each item represent a service, click on it to see a list of models in that service
+2. **Search Box**: Full text search in the data model. Can't find something? Here's a good place to start from
+3. **Service Status**: Reports the status of each service and it's current version.
+
+![XOS GUI](../images/gui.png)
diff --git a/overview.md b/overview.md
index a67e6db..1a16dfb 100644
--- a/overview.md
+++ b/overview.md
@@ -29,11 +29,11 @@
  included in CORD.
 
 These are all fairly obvious. What's less obvious is the relationship among
-these stages, which is helpful in [Navigating CORD](navigate.md).
+these stages, which is explained in [Navigating CORD](navigate.md).
 
 ## Navigating the References
 
-CORD is built from components and the aggregation of components into a
+CORD is built from disaggregated components that are assembled into a
 composite solution. The References are organized accordingly:
 
 * [Profile Reference](profiles/intro.md): Installation and
diff --git a/profiles/seba/operate/agg-ops.md b/profiles/seba/operate/agg-ops.md
index c0b324d..015a2e3 100644
--- a/profiles/seba/operate/agg-ops.md
+++ b/profiles/seba/operate/agg-ops.md
@@ -1 +1,29 @@
 # AGG Switch Operations
+
+The aggregation switch is managed by the [Fabric Crossconnect](/fabric-crossconnect/README.md) Service.
+
+## Creating special-purpose VLAN crossconnects
+
+Sometimes it is necessary to create a special purpose VLAN crossconnect, such as to connect a specific VM to a BNG. To do this, it is necessary to manually create a `FabricCrossconnectServiceInstance`. First, assure that you have the necessary information:
+
+- `s_tag`. The VLAN tag that you wish to crossconnect.
+- `source_port`. Port number on the switch for one end of the crossconnect (typically where your VM is attached).
+- `destination_port`. Port number on the switch for the other end of the crossconnect (typically where your BNG is attached).
+- `switch_datapath_id`. Openflow ID of the switch where the crossconnect should be created.
+
+Next, navigate using the GUI to `Fabric crossconnect -> Fabric Crossconnect Service Instances`. There may or may not be existing service instances in the table at this time. Regardless, press the `Add` button to add a new service instance for your crossconnect:
+
+![Fabric Crossconect Service Instance Table View](./screenshots/fabric_crossconnect_service_instance_table_view.png "Fabric Crossconect Service Instance Table view in XOS")
+
+You will be presented with an empty detail screen for a new `Fabric Crossconnect Service Instance`. Enter the `s_tag`, `source_port`, and `switch_datapath_id`, then press the `SAVE` button.
+
+![Fabric Crossconect Service Instance Detail View](./screenshots/fabric_crossconnect_service_instance_detail_view.png "Fabric Crossconect Service Instance Detail view in XOS")
+
+If you already have a BNGPortMapping that matches the s-tag, then you do not need to proceed any further. If not, then it will be necessary to create a new BNGPortMapping for your s-tag. Start by going to `Fabric crossconnect -> BNGPortMappings`. There may or may not be any existing port mappings in the table. Press the `Add` button to create a new BNGPortMapping.
+
+![BNG Port Mapping Table View](./screenshots/bngportmapping_table_view.png "BNG Port Mapping Table view in XOS")
+
+You will be presented with an empty detail screen for a new `BNG Port Mapping`. Enter the `s_tag` and `switch port` (destination port), and then press the `SAVE` button.
+
+![BNG Port Mapping Detail View](./screenshots/bngportmapping_detail_view.png "BNG Port Mapping Detail view in XOS")
+
diff --git a/profiles/seba/operate/k8s-helm-ops.md b/profiles/seba/operate/k8s-helm-ops.md
index ce35330..c86aaf6 100644
--- a/profiles/seba/operate/k8s-helm-ops.md
+++ b/profiles/seba/operate/k8s-helm-ops.md
@@ -65,7 +65,7 @@
 
 ```bash
 helm upgrade --version=1.0.0 --reuse-values \
-    --set att-workflow-driver.image.repository=myrepo/att-workflow-driver
+    --set att-workflow-driver.image.repository=myrepo/att-workflow-driver \
     --set att-workflow-driver.image.tag=test-image \
     att-workflow cord/att-workflow
 ```
@@ -74,3 +74,90 @@
 replace `helm upgrade` with `helm template` in the above commands.  This will
 print out all the Kubernetes resources that Helm generates, and you can
 check that the image has actually been updated in the resources.
+
+## Deploying ONOS Apps
+
+If your applications are available on a webserver you can configure
+the `seba` chart to use those applications or change them at runtime via TOSCA/GUI.
+
+#### Configure ONOS apps at installation time
+
+If you are going to install a POD with custom ONOS applications you can create a
+custom values file as the following:
+
+```yaml
+# myvalues.yaml
+seba-services:
+  aaaAppUrl: "https://<my-webserver>/aaa/1.8.0/aaa-1.8.0.oar"
+  sadisAppUrl: "https://<my-webserver>/sadis-app/2.2.0/sadis-app-2.2.0.oar"
+  dhcpl2relayAppUrl: "https://<my-webserver>/dhcpl2relay/1.5.0/dhcpl2relay-1.5.0.oar"
+  oltAppUrl: "https://<my-webserver>/olt-app/2.1.0/olt-app-2.1.0.oar"
+  kafkaAppUrl: "https://<my-webserver>/kafka/1.0.0/kafka-1.0.0.oar"
+```
+
+and then install the `seba` chart using:
+
+```bash
+helm install -n seba cord/seba -f myvalues.yaml
+```
+
+For more informations on how to create a webserver containing the ONOS Apps
+and deploy it on the POD you can look at the [Offline Install](../../../offline-install.md#install-a-local-web-server-using-helm-optional)
+
+#### Change ONOS apps at runtime
+
+If you already have a POD installed but you want to replace an application,
+you have two options:
+
+**Update ONOS apps using TOSCA**
+
+To update an ONOS app on a running system you can use a TOSCA similar to
+the following one:
+
+```yaml
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+imports:
+   - custom_types/onosapp.yaml
+   - custom_types/onosservice.yaml
+
+description: Replace an ONOS applications
+
+topology_template:
+  node_templates:
+
+    service#onos:
+      type: tosca.nodes.ONOSService
+      properties:
+          name: onos
+          must-exist: true
+
+    onos_app#olt:
+      type: tosca.nodes.ONOSApp
+      properties:
+        name: olt
+        app_id: org.opencord.olt
+        url: https://<my-webserver>/olt-app/2.1.0/olt-app-2.1.0.oar
+        version: 2.1.0
+        dependencies: org.opencord.sadis
+      requirements:
+        - owner:
+            node: service#onos
+            relationship: tosca.relationships.BelongsToOne
+```
+
+For instructions on how to push TOSCA into a CORD POD, please
+refer to this [guide](../../../xos-tosca/README.md).
+
+**Update ONOS apps via the GUI**
+
+If you want to update the version of an ONOS application via the GUI,
+you can simply navigate to `ONOS -> ONOS Applications` then select the application
+you want to update by clicking on the magnifier icon.
+
+Once you are in the detailed view of that application, you can just change the
+`url` field and save it. Note that if the `version` has changed you'll need to
+update that to.
+
+![ONOS Application detailed view in XOS](./screenshots/onos_apps_detail_view.png "ONOS Application detailed view in XOS")
+
diff --git a/profiles/seba/operate/olt-ops.md b/profiles/seba/operate/olt-ops.md
index a4317c1..e54fd95 100644
--- a/profiles/seba/operate/olt-ops.md
+++ b/profiles/seba/operate/olt-ops.md
@@ -1 +1,32 @@
 # OLT Operations
+
+For information on how to add an OLT, please refere to the
+[POD specific configuration](../configuration.md#olt-provisioning) page.
+
+## Remove on OLT
+
+In order to remove the OLT it is mandatory that no active subscribers are using it.
+
+You have two options:
+
+- [removing the subscribers](./olt-ops.md#remove-subscriber)
+- [changing their state to pre-provisioned](./olt-ops.md#change-subscriber-status)
+
+once the subscribers are gone you can navigate to `vOLT -> OLT Devices` and remove
+the device by clicking on the red `X` icon on the left side of the table.
+
+![OLT Table view in XOS](./screenshots/olt_table_view.png "OLT Table view in XOS")
+
+### Remove subscriber
+
+To remove a subscriber just visit `RCORD -> RCORD Subscribers` and click on the
+red `X` icon on the left side of the table.
+
+![Subscribers Table view in XOS](./screenshots/subscribers_table_view.png "Subscribers Table view in XOS")
+
+### Change subscriber status
+
+To change the Subscriber status, go to `RCORD -> RCORD Subscribers` and enter the
+detail view by clicking on the magnifier icon. Then change its state to `Pre Provisioned`
+
+![Subscribers Detail view in XOS](./screenshots/subscribers_detail_view.png "Subscribers Detail view in XOS")
\ No newline at end of file
diff --git a/profiles/seba/operate/onu-ops.md b/profiles/seba/operate/onu-ops.md
index 6186438..a54b73e 100644
--- a/profiles/seba/operate/onu-ops.md
+++ b/profiles/seba/operate/onu-ops.md
@@ -1 +1,17 @@
 # ONU Operations
+
+ONUs can be managed from the corresponding view in XOS,
+it is located under `vOLT -> ONU Devices`
+
+![ONU Table view in XOS](./screenshots/onu_table_view.png "ONU Table view in XOS")
+
+From this view you can view all the ONUs known to the system, remove them or go
+to the details page (clicking on the magnifier icon)
+
+## Enable/Disable an ONU
+
+Once you are in the ONU details view, you can just change it's `Admin State`
+to enable or disable the device.
+
+![ONU Detail view in XOS](./screenshots/onu_detail_view.png "ONU Detail view in XOS")
+
diff --git a/profiles/seba/operate/screenshots/bngportmapping_detail_view.png b/profiles/seba/operate/screenshots/bngportmapping_detail_view.png
new file mode 100644
index 0000000..101cfe7
--- /dev/null
+++ b/profiles/seba/operate/screenshots/bngportmapping_detail_view.png
Binary files differ
diff --git a/profiles/seba/operate/screenshots/bngportmapping_table_view.png b/profiles/seba/operate/screenshots/bngportmapping_table_view.png
new file mode 100644
index 0000000..223e165
--- /dev/null
+++ b/profiles/seba/operate/screenshots/bngportmapping_table_view.png
Binary files differ
diff --git a/profiles/seba/operate/screenshots/fabric_crossconnect_service_instance_detail_view.png b/profiles/seba/operate/screenshots/fabric_crossconnect_service_instance_detail_view.png
new file mode 100644
index 0000000..5b6e367
--- /dev/null
+++ b/profiles/seba/operate/screenshots/fabric_crossconnect_service_instance_detail_view.png
Binary files differ
diff --git a/profiles/seba/operate/screenshots/fabric_crossconnect_service_instance_table_view.png b/profiles/seba/operate/screenshots/fabric_crossconnect_service_instance_table_view.png
new file mode 100644
index 0000000..fbda193
--- /dev/null
+++ b/profiles/seba/operate/screenshots/fabric_crossconnect_service_instance_table_view.png
Binary files differ
diff --git a/profiles/seba/operate/screenshots/olt_table_view.png b/profiles/seba/operate/screenshots/olt_table_view.png
new file mode 100644
index 0000000..0d32958
--- /dev/null
+++ b/profiles/seba/operate/screenshots/olt_table_view.png
Binary files differ
diff --git a/profiles/seba/operate/screenshots/onos_apps_detail_view.png b/profiles/seba/operate/screenshots/onos_apps_detail_view.png
new file mode 100644
index 0000000..a54793f
--- /dev/null
+++ b/profiles/seba/operate/screenshots/onos_apps_detail_view.png
Binary files differ
diff --git a/profiles/seba/operate/screenshots/onu_detail_view.png b/profiles/seba/operate/screenshots/onu_detail_view.png
new file mode 100644
index 0000000..de205fb
--- /dev/null
+++ b/profiles/seba/operate/screenshots/onu_detail_view.png
Binary files differ
diff --git a/profiles/seba/operate/screenshots/onu_table_view.png b/profiles/seba/operate/screenshots/onu_table_view.png
new file mode 100644
index 0000000..40744db
--- /dev/null
+++ b/profiles/seba/operate/screenshots/onu_table_view.png
Binary files differ
diff --git a/profiles/seba/operate/screenshots/subscribers_detail_view.png b/profiles/seba/operate/screenshots/subscribers_detail_view.png
new file mode 100644
index 0000000..a5ac219
--- /dev/null
+++ b/profiles/seba/operate/screenshots/subscribers_detail_view.png
Binary files differ
diff --git a/profiles/seba/operate/screenshots/subscribers_table_view.png b/profiles/seba/operate/screenshots/subscribers_table_view.png
new file mode 100644
index 0000000..95e0073
--- /dev/null
+++ b/profiles/seba/operate/screenshots/subscribers_table_view.png
Binary files differ
diff --git a/profiles/seba/operate/screenshots/whitelist_table_view.png b/profiles/seba/operate/screenshots/whitelist_table_view.png
new file mode 100644
index 0000000..a55f6d7
--- /dev/null
+++ b/profiles/seba/operate/screenshots/whitelist_table_view.png
Binary files differ
diff --git a/profiles/seba/operate/whitelist-ops.md b/profiles/seba/operate/whitelist-ops.md
index c1335fe..54ffbc4 100644
--- a/profiles/seba/operate/whitelist-ops.md
+++ b/profiles/seba/operate/whitelist-ops.md
@@ -1 +1,11 @@
 # Whitelist Operations
+
+The whitelist entries can be removed and modified from this page.
+
+`Att Workflow Driver -> ONU Whitelist`
+
+![Whitelist Table view in XOS](./screenshots/whitelist_table_view.png "Whitelist Table view in XOS")
+
+For more information about the whitelist, please refer to the
+[Configure AT&T workflow](../workflows/att-configure.md#whitelist-population) page.
+
diff --git a/profiles/seba/troubleshoot/no-att-si.md b/profiles/seba/troubleshoot/no-att-si.md
index 7a73d5b..82d170f 100644
--- a/profiles/seba/troubleshoot/no-att-si.md
+++ b/profiles/seba/troubleshoot/no-att-si.md
@@ -1 +1,125 @@
-# I don't see any AttWorkflowInstances
+# I don't see any AttWorkflowServiceInstances
+
+If you have added an OLT in the system but you see no AttWorkflowServiceInstances
+you can debug it following these steps.
+
+## Check the status in VOLTHA
+
+Connect to the [VOLTHA CLI](../../../charts/voltha.md#accessing-the-voltha-cli)
+and check the devices:
+
+```shell
+(voltha) devices
+Devices:
++------------------+-------------------+------+------------------+------------------+-------------+-------------+----------------+----------------+------------------+------------------------+-------------------------+--------------------------+----------------------+------------------------------+
+|               id |              type | root |        parent_id |    serial_number | admin_state | oper_status | connect_status | parent_port_no |    host_and_port |                 reason | proxy_address.device_id | proxy_address.channel_id | proxy_address.onu_id | proxy_address.onu_session_id |
++------------------+-------------------+------+------------------+------------------+-------------+-------------+----------------+----------------+------------------+------------------------+-------------------------+--------------------------+----------------------+------------------------------+
+| 00012d28315ddb79 |           openolt | True | 000100000a5a007a | 10.90.0.122:9191 |     ENABLED |      ACTIVE |      REACHABLE |                | 10.90.0.122:9191 |                        |                         |                          |                      |                              |
+| 0001d18bedd13517 | brcm_openomci_onu | True | 00012d28315ddb79 |     ALPHe3d1cfe3 |     ENABLED |      ACTIVE |      REACHABLE |      536870912 |                  | initial-mib-downloaded |        00012d28315ddb79 |                          |                    1 |                            1 |
+| 00011c399faa957d | brcm_openomci_onu | True | 00012d28315ddb79 |     ALPHe3d1cf9d |     ENABLED |  DISCOVERED |      REACHABLE |      536870912 |                  |          starting-omci |        00012d28315ddb79 |                          |                    2 |                            2 |
++------------------+-------------------+------+------------------+------------------+-------------+-------------+----------------+----------------+------------------+------------------------+-------------------------+--------------------------+----------------------+------------------------------+
+```
+
+AttWorkflowServiceInstances are created once the ONUs reach are in `oper_status=ACTIVE`,
+so at this given time we should expect to see only one AttWorkflowServiceInstances.
+
+Now check the logical device representing that OLT and verify that it shows active
+UNI ports:
+
+```shell
+(voltha) logical_devices
+Logical devices:
++------------------+------------------+------------------+------------------+---------------------------+--------------------------+
+|               id |      datapath_id |   root_device_id |  desc.serial_num | switch_features.n_buffers | switch_features.n_tables |
++------------------+------------------+------------------+------------------+---------------------------+--------------------------+
+| 000100000a5a007a | 000000000a5a007a | 00012d28315ddb79 | 10.90.0.122:9191 |                       256 |                        2 |
++------------------+------------------+------------------+------------------+---------------------------+--------------------------+
+(voltha) logical_device 000100000a5a007a
+(logical device 000100000a5a007a) ports
+Logical device ports:
++-----------+------------------+----------------+-----------+------------------+------------------------------+---------------+----------------+---------------+---------------------+------------------------+
+|        id |        device_id | device_port_no | root_port | ofp_port.port_no |             ofp_port.hw_addr | ofp_port.name | ofp_port.state | ofp_port.curr | ofp_port.curr_speed | ofp_port_stats.port_no |
++-----------+------------------+----------------+-----------+------------------+------------------------------+---------------+----------------+---------------+---------------------+------------------------+
+| nni-65536 | 00012d28315ddb79 |          65536 |      True |            65536 |     [0L, 0L, 0L, 1L, 0L, 0L] |     nni-65536 |              4 |          4128 |                  32 |                  65536 |
+|    uni-32 | 00011c399faa957d |             32 |           |               32 |    [8L, 0L, 0L, 0L, 0L, 32L] |  ALPHe3d1cf9d |              4 |          4160 |                  64 |                        |
+|    uni-16 | 0001d18bedd13517 |             16 |           |               16 |    [8L, 0L, 0L, 0L, 0L, 16L] |  ALPHe3d1cfe3 |              4 |          4160 |                  64 |                        |
++-----------+------------------+----------------+-----------+------------------+------------------------------+---------------+----------------+---------------+---------------------+------------------------+
+```
+
+If no ports are shown an error has occurred in VOLTHA, if everything
+looks correct you can proceed to the next step.
+
+## Check the status in ONOS
+
+Connect to the [ONOS CLI](../../../charts/onos.md#accessing-the-onos-cli)
+and check devices:
+
+```shell
+
+onos> devices
+id=of:0000000000000002, available=true, local-status=connected 5h33m ago, role=MASTER, type=SWITCH, mfr=Accton Corp., hw=x86-64-accton-as6712-32x-r0, sw=ofdpa 3.0.5.5+accton1.7-1, serial=671232X1538038, chassis=2, driver=ofdpa3, channelId=10.90.0.120:46211, locType=none, managementAddress=10.90.0.120, name=AGG_SWITCH, protocol=OF_13
+id=of:000000000a5a007a, available=true, local-status=connected 4h19m ago, role=MASTER, type=SWITCH, mfr=VOLTHA Project, hw=, sw=, serial=10.90.0.122:9191, chassis=a5a007a, driver=voltha, channelId=10.233.102.179:59154, locType=none, managementAddress=10.233.102.179, name=SHAD OLT, protocol=OF_13
+```
+
+You should see the aggregation switch and the logical device representing the PON.
+If you can't see the logical device (`mfr=VOLTHA Project`) then an error occurred
+in the communication between the VOLTHA ofagent component and ONOS.
+
+Check if ONOS can see the active ports on the logical device:
+```shell
+onos> ports -e of:000000000a5a007a
+id=of:000000000a5a007a, available=true, local-status=connected 4h21m ago, role=MASTER, type=SWITCH, mfr=VOLTHA Project, hw=, sw=, serial=10.90.0.122:9191, chassis=a5a007a, driver=voltha, channelId=10.233.102.179:59154, locType=none, managementAddress=10.233.102.179, name=SHAD OLT, protocol=OF_13
+  port=16, state=enabled, type=fiber, speed=0 , adminState=enabled, portMac=08:00:00:00:00:10, portName=ALPHe3d1cfe3
+  port=32, state=enabled, type=fiber, speed=0 , adminState=enabled, portMac=08:00:00:00:00:20, portName=ALPHe3d1cf9d
+  port=65536, state=enabled, type=fiber, speed=0 , adminState=enabled, portMac=00:00:00:01:00:00, portName=nni-65536
+```
+
+If you don't see the ports there's again some issue in the communication between
+the VOLTHA ofagent component and ONOS.
+
+If everything looks correct you can move to the next step.
+
+## Check events in Kafka
+
+### Use Kibana
+
+If you have installed the [Logging component](../../../charts/logging-monitoring.md#logging-dashboard) of the platform you can then look in
+Kibana for these events.
+
+Connect to the dashboard an search for events in the `onu.events` topic:
+
+![Kibana ONU events](./screenshots/kibana_onu_events.png "Kibana ONU events")
+
+### Check in Kafka
+
+You can install kafkacat on the POD using this command:
+
+```shell
+helm install -n kfc cord/kafkacat
+```
+
+Then you'll need to access the container and list the messages on the `onu.events`
+topic:
+
+```shell
+kubectl exec -it kafkacat-7f45f65485-2lgp8 bash
+root@kafkacat-7f45f65485-2lgp8:/# kafkacat -b cord-platform-kafka -t onu.events
+```
+
+If evetyhing is correct you should see:
+
+```shell
+{"timestamp":"2018-12-19T22:34:00.755Z","status":"activated","serial_number":"ALPHe3d1cfe3","uni_port_id":16,"of_dpid":"of:000000000a5a007a"}
+```
+
+If you can see events in Kafka you can proceed with the next step.
+
+## Check the AttWorkflowDriver container
+
+This is the last step of the process, if you have events in kafka, you should
+check the logs of the `att-workflow-driver` container.
+
+You can do that using this command:
+```
+kubectl logs -f att-workflow-att-workflow-driver-7c8bc95894-xgxts
+```
diff --git a/profiles/seba/troubleshoot/screenshots/kibana_onu_events.png b/profiles/seba/troubleshoot/screenshots/kibana_onu_events.png
new file mode 100644
index 0000000..f1b7818
--- /dev/null
+++ b/profiles/seba/troubleshoot/screenshots/kibana_onu_events.png
Binary files differ
diff --git a/profiles/seba/workflows/att-configure.md b/profiles/seba/workflows/att-configure.md
index 056c2c9..4426858 100644
--- a/profiles/seba/workflows/att-configure.md
+++ b/profiles/seba/workflows/att-configure.md
@@ -1,10 +1,13 @@
 # Configure AT&T Workflow
 
-We assume your POD is already configured as per[this instructions](../configuration.md)
+We assume your POD is already configured as per [this instructions](../configuration.md)
 (you need to complete only the first section)
 
 ## Whitelist population
 
+> NOTE: the whitelist can be populated at any time. 
+> It doesn't need to be done upfront.
+
 To configure the ONU whitelist, you can use this TOSCA:
 
 ```yaml
@@ -37,74 +40,30 @@
 For instructions on how to push TOSCA into a CORD POD, please
 refer to this [guide](../../../xos-tosca/README.md).
 
-## Pre-provision subscribers
+### Where to find the required informations
 
-You can `pre-provision` subscribers using this TOSCA:
+#### Serial Number
 
-```yaml
-tosca_definitions_version: tosca_simple_yaml_1_0
-imports:
-  - custom_types/rcordsubscriber.yaml
+To locate the ONU serial number you can open the ONU detail view (`vOLT -> ONU Devices`).
 
-description: Pre-provsion a subscriber
+![ONU Detail view](./screenshots/onu_sn.png)
 
-topology_template:
-  node_templates:
+> NOTE: most of the time the serial number is also printed on the physical device.
 
-    # Pre-provision the subscriber the subscriber
-    my_house:
-      type: tosca.nodes.RCORDSubscriber
-      properties:
-        name: My House
-        status: pre-provisioned
-        c_tag: 111
-        onu_device: BRCM22222222
-        nas_port_id : "PON 1/1/03/1:1.1.1"
-        circuit_id: foo
-```
+#### Pon Port ID
 
-For instructions on how to push TOSCA into a CORD POD, please
-refer to this [guide](../../../xos-tosca/README.md).
+The `pon_port_id` can be found from the ONU detail view, by selecting the `PON Port`
+tab:
 
-## OLT Activation
+![ONU Detail view](./screenshots/pon_port.png)
 
-Once the system knows about whitelisted ONUs and subscribers,
-you can activate the OLT:
+#### Device ID
 
-```yaml
-tosca_definitions_version: tosca_simple_yaml_1_0
-imports:
-  - custom_types/oltdevice.yaml
-  - custom_types/voltservice.yaml
-description: Create a simulated OLT Device in VOLTHA
-topology_template:
-  node_templates:
+The `device_id` can easily be found in the OLT list view. Note the `device_id` is
+the openflow ID of the logical device exposed to ONOS, and not the serial number
+of the device.
 
-    service#volt:
-      type: tosca.nodes.VOLTService
-      properties:
-        name: volt
-        must-exist: true
-
-    olt_device:
-      type: tosca.nodes.OLTDevice
-      properties:
-        name: ONF OLT
-        device_type: openolt
-        host: 10.90.0.114
-        port: 9191
-        switch_datapath_id: of:0000000000000001
-        switch_port: "1"
-        outer_tpid: "0x8100"
-        uplink: "128"
-      requirements:
-        - volt_service:
-            node: service#volt
-            relationship: tosca.relationships.BelongsToOne
-```
-
-For instructions on how to push TOSCA into a CORD POD, please
-refer to this [guide](../../../xos-tosca/README.md).
+![OLT List view](./screenshots/olt_device_id.png)
 
 ## Device monitoring
 
diff --git a/profiles/seba/workflows/screenshots/olt_device_id.png b/profiles/seba/workflows/screenshots/olt_device_id.png
new file mode 100644
index 0000000..3e004ec
--- /dev/null
+++ b/profiles/seba/workflows/screenshots/olt_device_id.png
Binary files differ
diff --git a/profiles/seba/workflows/screenshots/onu_sn.png b/profiles/seba/workflows/screenshots/onu_sn.png
new file mode 100644
index 0000000..878e180
--- /dev/null
+++ b/profiles/seba/workflows/screenshots/onu_sn.png
Binary files differ
diff --git a/profiles/seba/workflows/screenshots/pon_port.png b/profiles/seba/workflows/screenshots/pon_port.png
new file mode 100644
index 0000000..4263d59
--- /dev/null
+++ b/profiles/seba/workflows/screenshots/pon_port.png
Binary files differ
diff --git a/quickstart.md b/quickstart.md
index 3dfab6b..382d310 100644
--- a/quickstart.md
+++ b/quickstart.md
@@ -2,7 +2,7 @@
 
 This section walks you through an example installation sequence on two
 different Unix-based platforms. This is just a surface introduction to
-CORD. If you'd prefer to understand the installation process in more
+CORD. If you prefer to understand the installation process in more
 depth, including the full range of deployment options, you should
 start with the [Installation Guide](README.md) instead.
 
@@ -16,6 +16,7 @@
 * [MacOS](macos.md)
 * [Linux](linux.md)
 
-Instead if you want to quickly get started with a complete CORD system together
-with the CORD platform, a profile such as SEBA, an exemplar operator workflow and
-an emulated data-plane, consider [SEBA-in-a-Box](./profiles/seba/siab-overview.md).
+If you want to quickly get started with a complete CORD system
+running on your laptop—including the CORD platform, the SEBA profile,
+an exemplar operator workflow, and an emulated data-plane—you could
+give [SEBA-in-a-Box](./profiles/seba/siab-overview.md) a try.
