diff --git a/README.md b/README.md
index a11fc8d..ec737d7 100644
--- a/README.md
+++ b/README.md
@@ -70,11 +70,12 @@
 WITH_BBSIM=yes WITH_RADIUS=y CONFIG_SADIS=y  voltha up
 ```
 
-To start a specific version of VOLTHA, e.g. 2.2, you could use the following command:
+To start a specific version of VOLTHA, e.g. 2.3, you could use the following commands:
 ```bash
-source releases/voltha-2.2 && voltha up
+git checkout tags/3.0.3 -b 3.0.3
+source releases/voltha-2.3 && voltha up
 ```
-Please check the `releases` folder to see the available ones.
+Please check the `releases` folder to see the available ones and pick the correct tag associatet do that release.
 
 | OPTION                                | DEFAULT                                               | DESCRIPTION |
 | ------------------------------------- | ----------------------------------------------------- | ------------------------------------------------------------------------------------ |
@@ -135,6 +136,33 @@
 | `VOLTHA_ETCD_PORT`                      | dynamic                                               | (advanced) Override dynamic port selection for port forward for VOLTHA etcd |
 | `VOLTHA_KAFKA_PORT`                     | dynamic                                               | (advanced) Override dynamic port selection for port forward for VOLTHA Kafka API |
 
+### Custom Namespaces
+
+Separate namespaces can be specified for various components
+  - `VOLTHA_NS`  (default: `voltha`)  for cores, ofagent, Etcd (yes), Kafka (yes)
+  - `ADAPTER_NS` (default: `voltha`)  for device adapters
+  - `INFRA_NS`   (default: `default`) for RADIUS, ONOS, Etcd (external), Kafka (external)
+  - `BBSIM_NS`   (default: `voltha`)  for BBSIM instances
+
+As an example `BBSIM_NS=devices` deployes BBSim in the `devices` namespace.
+
+### External Kafka, Etcd and ONOS
+`WITH_ETCD`,  `WITH_KAFKA` and `WITH_ONOS` can have different values depending on the deployment needs:
+
+| VALUE            | DESCRIPTION |
+| ---------------- | --------------- |
+| `yes` or `y`     | installs Etcd and Kafka in the `voltha` namespace |
+| `external`       | installs Etcd and Kafka in the `default` namespace |
+| `<endpoint>`     | connects the deployment to pre-deployed instance of the service |
+
+When specifying the `<endpoint>` of the service the format for each of these is `service-name`[`:port`]. Port is optional and will default to the standard port for the given service. For example, `WITH_KAFA=kafka.infra.svc.cluster.local`
+
+Specifying the endpoint enable to use `./voltha up` incrementally, for example:
+```
+DEPLOY_K8S=n WITH_BBSIM=y WITH_RADIUS=no CONFIG_SADIS=no  WITH_ONOS=onos-openflow.infra.svc.cluster.local  WITH_ETCD=etcd-cluster-client.infra.svc.cluster.local WITH_KAFKA=kafka.infra.svc.cluster.local  INFRA_NS=infra BBSIM_NS=devices ADAPTER_NS=adapters ./voltha up
+```
+starts VOLTHA with external ONOS,KAFKA,ETCD in the `infra` namespace.
+
 ### `CONFIG_SADIS` Values
 
 | VALUE            | DESCRIPTION |
diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md
index ee693f0..a4f37dc 100644
--- a/RELEASE_NOTES.md
+++ b/RELEASE_NOTES.md
@@ -1,13 +1,19 @@
 # April 7, 2020
-- Etcd and Kafka can be installed independently of VOLTHA, with `WITH_ETCD` and/or `WITH_KAFKA` set to `experimental`
+- Etcd and Kafka can be installed independently of VOLTHA, with `WITH_ETCD` and/or `WITH_KAFKA` set to their endpoints:
+  - `WITH_ETCD=y WITH_KAFKA=y` installs Etcd and Kafka in the `voltha` namespace
+  - `WITH_ETCD=external WITH_KAFKA=external` installs Etcd and Kafka in the `default` namespace
+  - `WITH_ETCD=<etcd-endpoint> WITH_KAFKA=<kafka-endpoint>` connects the deployment to pre-deployed instance of Etcd and Kafka
+- `WITH_ETCD`, `WITH_KAFKA`, and `WITH_ONOS` when used to specify external services (i.e. services that are not nessisarily deployed as part of `kind-voltha`) require the format for each of these is `service-name`[`:port`]. Port is optional and will default to the standard port for the given service.
 - Separate namespaces can be specified for various components
-  - `VOLTHA_NS` (default: `voltha`) for cores, ofagent, Etcd (yes), Kafka (yes)
-  - `ADAPTER_NS` (default: `voltha`) for device adapters
-  - `INFRA_NS` (default: `default`) for RADIUS, ONOS, Etcd (external), Kafka (external)
-  - `BBSIM_NS` (default: `voltha`) for BBSIM instances
-- `WITH_ETCD`, `WITH_KAFKA`, and `WITH_ONOS` can be used to specify external services (i.e. services that are not nessisarily deployed as part of `kind-voltha`. The format for each of these is `service-name`[`:port`]. Port is optional and will default to the standard port for the given service.
+  - `VOLTHA_NS`  (default: `voltha`)  for cores, ofagent, Etcd (yes), Kafka (yes)
+  - `ADAPTER_NS` (default: `voltha`)  for device adapters
+  - `INFRA_NS`   (default: `default`) for RADIUS, ONOS, Etcd (external), Kafka (external)
+  - `BBSIM_NS`   (default: `voltha`)  for BBSIM instances
 
-The changes in this release enable the ability to shorten the development cycle by allowing developers only to cycle (restart) thos components required. For example, if VOLTHA is started with the following command:
+
+The changes in this release enable the ability to shorten the development cycle by allowing developers only to cycle (restart) the components required.
+
+For example, if VOLTHA is started with the following command:
 ```
 WITH_BBSIM=y WITH_RADIUS=y CONFIG_SADIS=y WITH_ONOS=y WITH_ETCD=external WITH_KAFKA=external INFRA_NS=infra BBSIM_NS=devices ADAPTER_NS=adapters ./voltha up
 ```
@@ -15,7 +21,7 @@
 ```
 DEPLOY_K8S=n WITH_BBSIM=y WITH_RADIUS=no CONFIG_SADIS=no  WITH_ONOS=no WITH_ETCD=no WITH_KAFKA=no INFRA_NS=infra BBSIM_NS=devices ADAPTER_NS=adapters ./voltha down
 ```
-Then it can be restarted with the following command and only the VOLTHA core components, adapters, and BBSIM are required to be restarted.
+Then it can be restarted with the following command and only the VOLTHA core components, adapters, and BBSIM are required to be restarted:
 ```
 DEPLOY_K8S=n WITH_BBSIM=y WITH_RADIUS=no CONFIG_SADIS=no  WITH_ONOS=onos-openflow.infra.svc.cluster.local  WITH_ETCD=etcd-cluster-client.infra.svc.cluster.local WITH_KAFKA=kafka.infra.svc.cluster.local  INFRA_NS=infra BBSIM_NS=devices ADAPTER_NS=adapters ./voltha up
 ```
