diff --git a/README.md b/README.md
index a25b9d8..248aff3 100644
--- a/README.md
+++ b/README.md
@@ -2,11 +2,12 @@
 
 This guide describes how to install CORD. It identifies a set of
 [prerequisites](prereqs/README.md), and then walks through
-the steps involved in bringing up one of three CORD profiles:
+the steps involved in bringing up the [Platform](platform.md). Once
+the Platform is installed, you are ready to bring up one of the
+available Profiles:
 
-* [R-CORD](./profiles/rcord/install.md)
-* [M-CORD](./profiles/mcord/install.md)
 * [SEBA](./profiles/seba/install.md)
+* [M-CORD](./profiles/mcord/install.md)
 
 If you are anxious to jump straight to a [Quick Start](quickstart.md)
 procedure that brings up an emulated version of CORD running
diff --git a/SUMMARY.md b/SUMMARY.md
index cc83143..48bff1c 100644
--- a/SUMMARY.md
+++ b/SUMMARY.md
@@ -5,6 +5,9 @@
     * [Quick Start](quickstart.md)
         * [MacOS](macos.md)
         * [Linux](linux.md)
+
+## Guides
+
 * [Installation Guide](README.md)
     * [Prerequisites](prereqs/README.md)
         * [Hardware Requirements](prereqs/hardware.md)
@@ -17,31 +20,10 @@
             * [Optional Packages](prereqs/optional.md)
                 * [OpenStack](prereqs/openstack-helm.md)
     * [Fabric Software Setup](fabric-setup.md)
-    * [Bringing Up CORD](profiles/intro.md)
-        * [R-CORD](profiles/rcord/install.md)
-            * [EdgeCore (OpenOLT driver) Setup](openolt/README.md)
-            * [Celestica / Microsemi Setup](profiles/rcord/celestica-olt-setup.md)
-            * [Emulated OLT/ONU](profiles/rcord/emulate.md)
-        * [M-CORD](profiles/mcord/install.md)
-            * [EnodeB Setup](profiles/mcord/enodeb-setup.md)
-        * [SEBA](profiles/seba/install.md)
-            * [SEBA-in-a-Box](profiles/seba/siab.md)
-            * [SEBA-in-a-Box with a fabric switch](profiles/seba/siab-with-fabric-switch.md)
-    * [Offline POD install](offline-install.md)
-    * [Helm Reference](charts/helm.md)
-        * [XOS-CORE](charts/xos-core.md)
-        * [ONOS](charts/onos.md)
-        * [VOLTHA](charts/voltha.md)
-        * [Kafka](charts/kafka.md)
-        * [Hippie OSS](charts/hippie-oss.md)
-        * [Base OpenStack](charts/base-openstack.md)
-            * [VTN Setup](prereqs/vtn-setup.md)
-        * [R-CORD](charts/rcord.md)
-        * [M-CORD](charts/mcord.md)
-        * [XOSSH](charts/xossh.md)
-        * [Logging and Monitoring](charts/logging-monitoring.md)
-        * [Persistent Storage](charts/storage.md)
-        * [BBSim](charts/bbsim.md)
+    * [Install Platform](platform.md)
+    * [Install Profile](profiles.md)
+    * [Offline Install](offline-install.md)
+    * [Attach containers to external NICs](operating_cord/veth_intf.md)
 * [Operations Guide](operating_cord/operating_cord.md)
     * [General Info](operating_cord/general.md)
         * [GUI](operating_cord/gui.md)
@@ -50,23 +32,13 @@
         * [XOS Internals](operating_cord/xos_internals.md)
             * [XOS Containers](xos/xos_internals.md)
             * [XOS Configuration](xos/modules/xosconfig.md)
-    * [Configuring Profiles](operating_cord/profiles.md)
-        * [R-CORD](profiles/rcord/configuration.md)
-            * Workflows
-                * [AT&T](profiles/rcord/workflows/att.md)
-        * [M-CORD](profiles/mcord/configuration.md)
-    * [Configuring Services](operating_cord/services.md)
-        * [Fabric](fabric/README.md)
-        * [ONOS](onos-service/README.md)
-        * [RCORD](rcord/README.md)
-        * [vOLT](olt-service/README.md)
-        * [vRouter](vrouter/README.md)
-        * [AT&T Workflow Driver](att-workflow-driver/README.md)
-    * [Attach containers to external NICs](operating_cord/veth_intf.md)
-* [API Guide](api/api.md)
-    * [gRPC API Tutorial](xos/dev/grpc_api.md)
-    * [REST API](operating_cord/rest_apis.md)
-    * [TOSCA](xos-tosca/README.md)
+    * [APIs](operating_cord/api.md)
+        * [gRPC API](xos/dev/grpc_api.md)
+        * [REST API](operating_cord/rest_apis.md)
+        * [TOSCA](xos-tosca/README.md)
+    * [Monitoring and Logging](operating_cord/diag.md)
+        * [Prometheus](operating_cord/prometheus.md)
+        * [ELK Stack](operating_cord/elk_stack.md)
 * [Development Guide](developer/developer.md)
     * [Getting the Source Code](developer/getting_the_code.md)
     * [Writing Models and Synchronizers](xos/intro.md)
@@ -82,10 +54,6 @@
     * [Developer Workflows](developer/workflows.md)
         * [Working on R-CORD Without an OLT/ONU](developer/configuration_rcord.md)
     * [Building Docker Images](developer/imagebuilder.md)
-    * [Platform Services](developer/platform.md)
-        * [Kubernetes](kubernetes-service/kubernetes-service.md)
-        * [OpenStack](openstack/openstack-service.md)
-        * [VTN and Service Composition](xos/xos_vtn.md)
     * [Example Services](examples/examples.md)
         * [SimpleExampleService](simpleexampleservice/simple-example-service.md)
         * [ExampleService](exampleservice/example-service.md)
@@ -103,3 +71,46 @@
     * [Test Environment](cord-tester/qa_testenv.md)
     * [System Tests](cord-tester/validate_pods.md)
 
+## References
+
+* [Profile Reference](profiles/intro.md)
+    * [SEBA](profiles/seba/README.md)
+        * Install
+            * [Install SEBA Charts](profiles/seba/install.md)
+            * [SEBA-in-a-Box](profiles/seba/siab.md)
+            * [SEBA-in-a-Box with Fabric Switch](profiles/seba/siab-with-fabric-switch.md)
+            * [Celestica / Microsemi Setup](profiles/rcord/celestica-olt-setup.md)
+            * [Emulated OLT/ONU](profiles/rcord/emulate.md)
+            * Workflows
+                * [AT&T](profiles/seba/workflows/att.md)
+        * [Configure](profiles/seba/configuration.md)
+    * [M-CORD](profiles/mcord/README.md)
+        * Install
+            * [Install M-CORD Charts](profiles/mcord/install.md)
+            * [EnodeB Setup](profiles/mcord/enodeb-setup.md)
+        * [Configure](profiles/mcord/configuration.md)
+* [Service Reference](operating_cord/services.md)
+    * [Fabric](fabric/README.md)
+    * [ONOS](onos-service/README.md)
+    * [RCORD](rcord/README.md)
+    * [vOLT](olt-service/README.md)
+    * [vRouter](vrouter/README.md)
+    * [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)
+* [Helm Reference](charts/helm.md)
+    * [XOS-CORE](charts/xos-core.md)
+    * [ONOS](charts/onos.md)
+    * [VOLTHA](charts/voltha.md)
+    * [Kafka](charts/kafka.md)
+    * [Hippie OSS](charts/hippie-oss.md)
+    * [Base OpenStack](charts/base-openstack.md)
+        * [VTN Setup](prereqs/vtn-setup.md)
+    * [R-CORD](charts/rcord.md)
+    * [M-CORD](charts/mcord.md)
+    * [XOSSH](charts/xossh.md)
+    * [Logging and Monitoring](charts/logging-monitoring.md)
+    * [Persistent Storage](charts/storage.md)
+    * [BBSim](charts/bbsim.md)
+
diff --git a/api/api.md b/api/api.md
deleted file mode 100644
index 1948c3f..0000000
--- a/api/api.md
+++ /dev/null
@@ -1,14 +0,0 @@
-# API Guide
-
-This guide describes workflows for interacting with the API of the NEM. There
-are several different API mechanisms that the NEM supports. Some of them are
-used in a Northbound context, for services sitting on top the NEM to interact
-with the NEM, and some are used internally for components to communicate with each other.
-
-* [gRPC](/xos/dev/grpc_api.md). The gRPC API is used internally for synchronizers and for Chameleon to speak with the XOS core. It's also available as a Northbound API.
-
-* [REST](/operating_cord/rest_apis.md). The REST API is implemented by the Chameleon container. In addition to being a popular Northbound API, it's also used by the XOS GUI.
-
-* [TOSCA](/xos-tosca/README.md). TOSCA is implemented by the xos-tosca container and is typically used to configure and provision a
-   POD. Later sections of this guide give examples of TOSCA workflows used to provision and configure various
-   [profiles](/operating_cord/profiles.md) and [services](/operating_cord/services.md). TOSCA can also be used as a general-purpose runtime API.
diff --git a/charts/rcord.md b/charts/rcord.md
new file mode 100644
index 0000000..789d8a7
--- /dev/null
+++ b/charts/rcord.md
@@ -0,0 +1,2 @@
+# R-CORD
+
diff --git a/offline-install.md b/offline-install.md
index 9026e93..dc209ef 100644
--- a/offline-install.md
+++ b/offline-install.md
@@ -1,4 +1,4 @@
-# Offline installation
+# Offline Install
 
 Often, CORD PODs' (management networks) don't have access to Internet.
 
diff --git a/operating_cord/api.md b/operating_cord/api.md
new file mode 100644
index 0000000..bba260b
--- /dev/null
+++ b/operating_cord/api.md
@@ -0,0 +1,22 @@
+# APIs
+
+This section describes workflows for interacting with the API of the
+CORD. There are multiple API mechanisms. Some of them are used in a
+Northbound context, for services sitting on top the CORD, and some are
+used internally for components to communicate with each other.
+
+* [gRPC](/xos/dev/grpc_api.md). The gRPC API is used internally for
+  synchronizers and for Chameleon to speak with the XOS core. It's
+  also available as a Northbound API.
+  
+* [REST](/operating_cord/rest_apis.md). The REST API is implemented by
+  the Chameleon container. In addition to being a popular Northbound
+  API, it's also used by the XOS GUI.
+
+* [TOSCA](/xos-tosca/README.md). TOSCA is implemented by the
+  xos-tosca container and is typically used to configure and provision
+  a POD. The following two references describe how to use TOSCA to
+  configure Profiles and Services, respectively:
+
+    * [Configuring Profiles](../profiles/intro.md)
+    * [Configuring Services](../operating_cord/services.md)
diff --git a/operating_cord/diag.md b/operating_cord/diag.md
index 947b342..6f45f4c 100644
--- a/operating_cord/diag.md
+++ b/operating_cord/diag.md
@@ -1 +1,5 @@
-# Diagnostics
+# Monitoring and Logging
+
+CORD is usually configured with monitoring and logging capabilities,
+built around Prometheus and ELK Stack, respectively. Both work on
+events/logs posted to Kafka and display results on a Kibana dashboard.
diff --git a/operating_cord/elk_stack.md b/operating_cord/elk_stack.md
index a2d45d6..f0aeea4 100644
--- a/operating_cord/elk_stack.md
+++ b/operating_cord/elk_stack.md
@@ -1,4 +1,4 @@
-# Diagnostics
+# ELK Stack
 
 CORD uses ELK Stack for logging information at all levels. CORD’s ELK Stack
 logger collects information from several components, including the XOS Core,
diff --git a/operating_cord/general.md b/operating_cord/general.md
index 10a7ec4..560e8aa 100644
--- a/operating_cord/general.md
+++ b/operating_cord/general.md
@@ -1,9 +1,11 @@
 # General Info
 
-This section of the guide describes tools for interacting with CORD. These tools generally interact with
-CORD over a variety of APIs that are described [here](/api/api.md). Most notably:
+This section of the guide describes tools for interacting with CORD.
+These tools generally interact with CORD over a variety of APIs that
+are described [here](api.md). Most notably:
 
 * A graphical interface is documented [here](gui.md).
 
-* A text shell, [XOSSH](/xos/dev/xossh.md), can be used to operate on objects in the CORD data model.
+* A text shell, [XOSSH](/xos/dev/xossh.md), can be used to operate on
+  objects in the CORD data model.
 
diff --git a/operating_cord/prometheus.md b/operating_cord/prometheus.md
new file mode 100644
index 0000000..c387479
--- /dev/null
+++ b/operating_cord/prometheus.md
@@ -0,0 +1,3 @@
+# Prometheus
+
+This is a placeholder for information on monitoring...
diff --git a/operating_cord/services.md b/operating_cord/services.md
index ded5c92..d8780d9 100644
--- a/operating_cord/services.md
+++ b/operating_cord/services.md
@@ -1,7 +1,7 @@
-# Configuring Services
+# Service Reference
 
-This sections contains detailed instructions about how to configure
-individual services. Among other things, it describes what services
-depend on, which is particularly useful in case you want to create
-your own service graph. As with profiles, services are typically
-configured using a TOSCA workflow.
+Each release of CORD includes a collection of services, some of which
+are considered *platform services* (i.e., configured into all profiles) and
+some of which are *profile-specific*.  The following documents the
+available services, specifying how each is modeled using `xproto`, and
+how each is configured and provisioned using TOSCA.
diff --git a/platform.md b/platform.md
new file mode 100644
index 0000000..46b4851
--- /dev/null
+++ b/platform.md
@@ -0,0 +1,24 @@
+# Install Platform
+
+Once the prerequisites have been met, the next step to installing CORD is
+to bring up the Helm charts for the platform components. This includes the
+following steps:
+
+## Install ONOS
+
+Install [onos](./charts/onos.md#onos-manages-fabric--voltha). 
+It will manage the fabric infrastructure.
+
+## Install XOS
+
+Install [xos-core](./charts/xos-core.md). It will orchestrate the services.
+
+## Install Kafka
+
+Install [cord-kafka](./charts/kafka.md). It will implement a shared 
+message bus.
+
+## Install Logging and Monitoring
+
+Install [loggin-monitoring](./charts/logging-monitoring.md). Log and monitor
+events in the POD.
diff --git a/profiles.md b/profiles.md
new file mode 100644
index 0000000..16e47a9
--- /dev/null
+++ b/profiles.md
@@ -0,0 +1,4 @@
+# Install Profile
+
+Once the [platform](platform.md) is installed, you are ready to bring up one
+of the available [profiles](profiles/intro.md).
diff --git a/profiles/intro.md b/profiles/intro.md
index 37646b3..5c049ee 100644
--- a/profiles/intro.md
+++ b/profiles/intro.md
@@ -1,7 +1,7 @@
-# Bringing Up CORD
+# Profile Reference
 
 CORD is a general-purpose platform that is able to run one or more
-profiles, each of which includes some access technology (e.g., OLT,
+*profiles*, each of which includes some access technology (e.g., OLT,
 RAN) and some collection of services (called a service graph or
 service mesh).
 
diff --git a/profiles/mcord/README.md b/profiles/mcord/README.md
new file mode 100644
index 0000000..ac0281f
--- /dev/null
+++ b/profiles/mcord/README.md
@@ -0,0 +1,5 @@
+# M-CORD Profile
+
+M-CORD is supported in 6.0 and will be supported again in 7.0, but it
+is not currently available as part of 6.1.
+
diff --git a/profiles/mcord/install.md b/profiles/mcord/install.md
index bf842b4..81018af 100644
--- a/profiles/mcord/install.md
+++ b/profiles/mcord/install.md
@@ -1,4 +1,4 @@
-# M-CORD
+# Install  M-CORD Charts
 
 > **Note**: Currently the M-CORD is under maintenance.
 > Check the link below for more information:
diff --git a/profiles/seba/README.md b/profiles/seba/README.md
new file mode 100644
index 0000000..a23023d
--- /dev/null
+++ b/profiles/seba/README.md
@@ -0,0 +1,8 @@
+# SEBA Profile
+
+SEBA (Software-Enabled Broadband Access) is a lightweight profile that
+supports white-box OLT devices.
+[Click here for a high-level overview.](https://www.opennetworking.org/seba/).
+
+The following pages describe how to install SEBA with some workload,
+and how to configure an installed SEBA POD.
diff --git a/profiles/seba/celestica-olt-setup.md b/profiles/seba/celestica-olt-setup.md
new file mode 100644
index 0000000..cab0435
--- /dev/null
+++ b/profiles/seba/celestica-olt-setup.md
@@ -0,0 +1,68 @@
+# Celestica OLT setup
+
+Celestica provides a GPON based OLT device that can work with Voltha and CORD.
+The OLT (also known as Microsemi OLT) model is called *CLS Ruby S1010*. For more info on the hardware models and the supported optics, look at the [recommended hardware page](../../prereqs/hardware.md#recommended-hardware).
+
+The following guide explains how to integrate the Celestica OLT with Voltha, and more in general with CORD.
+
+## OLT hardware notes and ports configuration
+
+The OLT has two lines of ports. Upper ports are master ports and should be used first. Lower ports act as backup ports for the upper ports.
+The OLT has 48 UNI ports (24 master, and 24 backups) and 6 NNI ports (3 master, and 3 backups).
+The UNI ports are divided in three PON groups. Each PON group is associated to an NNI port. The most right NNI port group is used for the most left PON group, and so on.
+Each PON group is divided in 4 PONs (each with four PON ports - the two upper, master, and the two lower, backup). Each port can support up to 32 connections.
+Each PON (each couple of vertically grouped ports, one master, one backup) will appear as a different OLT device in Voltha.
+
+## How to manage the OLT (access the CLI)
+
+As far as we know, the out-of-band OLT management port is disabled by default, and the OLT can be managed -including by Voltha- only in-band.
+Also, the OLT is managed as a L2 device by Voltha. As such, no IP addresses can be assigned to the OLT. The OLT doesn't need any specific configuration. Anyway, you may need to access the CLI for debug purposes. The CLI can be accessed from the console port for debugging.
+
+## OLT pre-installed software notes
+
+The Celestica box should come with ONIE and its own OS pre-installed. No additional configurations are required.
+
+## Get the OLTs MAC addresses
+
+The MAC addresses of the OLTs are needed to perform a successful Voltha configuration. To get the OLT MAC address, from the OLT CLI type:
+
+```shell
+/voltapp/onie-syseeprom
+```
+
+The command will only show the MAC address of the first OLT (first couple of ports from the left). To know the MAC addresses of the other OLTs, add 1 to the first MAC address, for each couple of next ports. For example, the MAC address of the second OLT (the second couple of vertical ports from the left) will be the MAC address returned by the command above plus 1.
+
+## Discover the OLT in Voltha
+
+Once the MAC address is known, pre-provision the OLT from Voltha
+
+```shell
+preprovision_olt --device-type=microsemi_olt --mac-address=11:22:33:44:55:66
+```
+
+where *11:22:33:44:55:66* is the MAC address of your OLT device.
+
+Then, enable the OLT, typing
+
+```shell
+enable
+```
+
+Voltha will start to send L2 packets to the OLT, until it gets discovered.
+
+> **NOTE:** at the moment, the microsemi_olt adapter sends only few packets to the OLT box after the *enable* command has been input. Recently, a *reboot* command has been added for this adapter. The command restarts the provisioning process.
+
+## Celestica OLT and R-CORD
+
+As said, the Celestica OLT can be used with Voltha, so in principle with R-CORD as well. At the moment, this requires some additional configuration to allow the in-band management communication between Voltha and the OLT.
+
+As in-band communication is done by L2 MAC address, the NNI port of OLT needs to have a L2 connection with Voltha.
+
+More specifically, in a typical CORD deployment Voltha runs as a set of container managed by k8s, which in turn runs on a (physical or virtual) machine. This machine is usually connected to the management network only. In a deployment using Celestica boxes instead, the server running Voltha will need to have an extra connection to the data plane (usually the CORD fabric switches).
+
+Of course, also the OLT NNI port needs to be connected as well to the same fabric switch.
+If both the OLT and the server running Voltha are connected to the same fabric switch, a path needs to be provisioned between the two. This can be achieved -for example- in the CORD fabric using Trellis, through the configuration of a VLAN cross-connect or a pseudo-wire.
+
+Further more, the Voltha vcore container (called voltha in the Kubernetes based deployment) should be connected to the data plane port, connected to the OLT, which is a quite trivial but manual operation. The steps to connect containers and server ports can be found in the [veth interface configuration guide](../../operating_cord/veth_intf.md).
+
+> **NOTE:** the Celestica OLT is known to work *only* with the top-down R-CORD configuration workflow.
diff --git a/profiles/seba/configuration.md b/profiles/seba/configuration.md
new file mode 100644
index 0000000..8a2a271
--- /dev/null
+++ b/profiles/seba/configuration.md
@@ -0,0 +1,225 @@
+# SEBA Configuration
+
+Once all the components needed for the SEBA profile are up and
+running on your POD, you will need to configure it. This is typically
+done using TOSCA. This configuration is environment specific, so
+you will need to create your own, but the following can serve as a
+reference:
+
+```yaml
+tosca_definitions_version: tosca_simple_yaml_1_0
+imports:
+  - custom_types/oltdevice.yaml
+  - custom_types/switch.yaml
+  - custom_types/switchport.yaml
+  - custom_types/portinterface.yaml
+  - custom_types/voltservice.yaml
+  - custom_types/vrouterserviceinstance.yaml
+  - custom_types/vrouterstaticroute.yaml
+
+description: Configures a full SEBA POD
+
+topology_template:
+  node_templates:
+    # Fabric configuration
+    switch#my_fabric_switch:
+      type: tosca.nodes.Switch
+      properties:
+        driver: ofdpa3
+        ipv4Loopback: 192.168.0.201
+        ipv4NodeSid: 17
+        isEdgeRouter: True
+        name: my_fabric_switch
+        ofId: of:0000000000000001
+        routerMac: 00:00:02:01:06:01
+
+    # Setup the OLT switch port
+    port#olt_port:
+      type: tosca.nodes.SwitchPort
+      properties:
+        portId: 1
+        host_learning: false
+      requirements:
+        - switch:
+            node: switch#my_fabric_switch
+            relationship: tosca.relationships.BelongsToOne
+
+    # Setup the OLT switch port interface
+    interface#olt_interface:
+      type: tosca.nodes.PortInterface
+      properties:
+        ips: 192.168.0.254/24
+        name: olt_interface
+      requirements:
+        - port:
+            node: port#olt_port
+            relationship: tosca.relationships.BelongsToOne
+
+    # Setup the fabric switch port where the external
+    # router is connected to
+    port#vrouter_port:
+      type: tosca.nodes.SwitchPort
+      properties:
+        portId: 31
+      requirements:
+        - switch:
+            node: switch#my_fabric_switch
+            relationship: tosca.relationships.BelongsToOne
+
+    # Setup the fabric switch port interface where the
+    # external router is connected to
+    interface#vrouter_interface:
+      type: tosca.nodes.PortInterface
+      properties:
+        name: vrouter_interface
+        vlanUntagged: 40
+        ips: 10.231.254.2/29
+      requirements:
+        - port:
+            node: port#vrouter_port
+            relationship: tosca.relationships.BelongsToOne
+
+    # Add a vRouter (ONOS)
+    vrouter#my_vrouter:
+      type: tosca.nodes.VRouterServiceInstance
+      properties:
+        name: my_vrouter
+
+    # Add a static route to the vRouter (ONOS)
+    route#my_route:
+      type: tosca.nodes.VRouterStaticRoute
+      properties:
+        prefix: "0.0.0.0/0"
+        next_hop: "10.231.254.1"
+      requirements:
+        - vrouter:
+            node: vrouter#my_vrouter
+            relationship: tosca.relationships.BelongsToOne
+
+    # Setup the OLT service
+    service#volt:
+      type: tosca.nodes.VOLTService
+      properties:
+        name: volt
+        must-exist: true
+
+    # Setup the OLT device
+    olt_device:
+      type: tosca.nodes.OLTDevice
+      properties:
+        name: volt-1
+        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).
+
+## Top-Down Subscriber Provisioning
+
+Once the POD has been configured, you can create a subscriber. This
+section describes a "top-down" approach for doing that. (The following
+section describes an alternative, "bottom up" approach.)
+
+To create a subscriber, you need to retrieve some information:
+
+- ONU Serial Number
+- Mac Address
+- IP Address
+
+### Find ONU Serial Number
+
+Once your POD is set up and the OLT has been pushed and activated in VOLTHA,
+XOS will discover the ONUs available in the system.
+
+You can find them through:
+
+- XOS GUI: on the left side click on `vOLT > ONUDevices`
+- XOS Rest API: `http://<pod-id>:<chameleon-port|30006>/xosapi/v1/volt/onudevices`
+- VOLTHA CLI: [Command Line Interface](../../charts/voltha.md#how-to-access-the-voltha-cli)
+
+If you are connected to the VOLTHA CLI you can use the following
+command to list all the existing devices:
+
+```shell
+(voltha) devices
+Devices:
++------------------+--------------+------+------------------+-------------+-------------+----------------+----------------+------------------+----------+-------------------------+----------------------+------------------------------+
+|               id |         type | root |        parent_id | admin_state | oper_status | connect_status | parent_port_no |    host_and_port | vendor_id| proxy_address.device_id | proxy_address.onu_id | proxy_address.onu_session_id |
++------------------+--------------+------+------------------+-------------+-------------+----------------+----------------+------------------+----------+-------------------------+----------------------+------------------------------+
+| 0001941bd45e71d8 |      openolt | True | 000100000a5a0072 |     ENABLED |      ACTIVE |      REACHABLE |                | 10.90.0.114:9191 |          |                         |                      |                              |
+| 00015698e67dc060 | broadcom_onu | True | 0001941bd45e71d8 |     ENABLED |      ACTIVE |      REACHABLE |      536870912 |                  |      BRCM|        0001941bd45e71d8 |                    1 |                            1 |
++------------------+--------------+------+------------------+-------------+-------------+----------------+----------------+------------------+----------+-------------------------+----------------------+------------------------------+
+```
+
+Locate the correct ONU, then:
+
+```shell
+(voltha) device 00015698e67dc060
+(device 00015698e67dc060) show
+Device 00015698e67dc060
++------------------------------+------------------+
+|                        field |            value |
++------------------------------+------------------+
+|                           id | 00015698e67dc060 |
+|                         type |     broadcom_onu |
+|                         root |             True |
+|                    parent_id | 0001941bd45e71d8 |
+|                       vendor |         Broadcom |
+|                        model |              n/a |
+|             hardware_version |     to be filled |
+|             firmware_version |     to be filled |
+|                 images.image |        1 item(s) |
+|                serial_number |     BRCM22222222 |
++------------------------------+------------------+
+|                      adapter |     broadcom_onu |
+|                  admin_state |                3 |
+|                  oper_status |                4 |
+|               connect_status |                2 |
+|      proxy_address.device_id | 0001941bd45e71d8 |
+|         proxy_address.onu_id |                1 |
+| proxy_address.onu_session_id |                1 |
+|               parent_port_no |        536870912 |
+|                    vendor_id |             BRCM |
+|                        ports |        2 item(s) |
++------------------------------+------------------+
+|                  flows.items |        5 item(s) |
++------------------------------+------------------+
+```
+
+to find the correct serial number.
+
+### Push a Subscriber into CORD
+
+Once you have this information, you can create the subscriber by
+customizing the following TOSCA and passing it into the POD:
+
+```yaml
+tosca_definitions_version: tosca_simple_yaml_1_0
+imports:
+  - custom_types/rcordsubscriber.yaml
+description: Create a test subscriber
+topology_template:
+  node_templates:
+    # A subscriber
+    my_house:
+      type: tosca.nodes.RCORDSubscriber
+      properties:
+        name: My House
+        c_tag: 111
+        onu_device: BRCM1234 # Serial Number of the ONU Device to which this subscriber is connected
+        mac_address: 00:AA:00:00:00:01 # subscriber mac address
+        ip_address: 10.8.2.1 # subscriber IP
+```
+
+For instructions on how to push TOSCA into a CORD POD, please
+refer to this [guide](../../xos-tosca/README.md).
diff --git a/profiles/seba/install.md b/profiles/seba/install.md
index 212157d..252d78d 100644
--- a/profiles/seba/install.md
+++ b/profiles/seba/install.md
@@ -1,6 +1,10 @@
-# SEBA Profile
+# Install SEBA Charts
 
-SEBA is a lightweight platform based on a variant of R-CORD.
-[Click here for a high-level overview.](https://www.opennetworking.org/seba/)
+This page walks through the sequence of Helm operations needed to
+bring up the SEBA profile. It assumes the Platform has already been
+installed.
 
-Quick start: [SEBA-in-a-Box](siab.md)
+## Install VOLTHA
+
+Install [voltha](../../charts/voltha.md).
+It will manage the OLT devices.
diff --git a/profiles/rcord/workflows/att.md b/profiles/seba/workflows/att.md
similarity index 100%
rename from profiles/rcord/workflows/att.md
rename to profiles/seba/workflows/att.md
