diff --git a/README.md b/README.md
index 94208cb..dc1aeb6 100644
--- a/README.md
+++ b/README.md
@@ -28,8 +28,8 @@
 cluster (> 1.9) in any way you want, otherwise you can follow one of this guide
 to install it:
 
-- [Install minikube on a single node](./prereqs/minikube.md)
-- [Install kubespray on a multiple nodes](./prereqs/kubespray.md)
+- [Install Kubernetes on a single node](./prereqs/k8s-single-node.md)
+- [Install Kubernetes on a multiple nodes](./prereqs/k8s-multi-node.md)
 
 ### Helm
 
diff --git a/SUMMARY.md b/SUMMARY.md
index 570fbe4..3892c6f 100644
--- a/SUMMARY.md
+++ b/SUMMARY.md
@@ -5,8 +5,8 @@
     * [Networking Connectivity](prereqs/networking.md)
     * [Software Requirements](prereqs/software.md)
         * [Kubernetes](prereqs/kubernetes.md)
-            * [Single Node KB8s](prereqs/minikube.md)
-            * [Multi Node KB8s](prereqs/kubespray.md)
+            * [Single Node KB8s](prereqs/k8s-single-node.md)
+            * [Multi Node KB8s](prereqs/k8s-multi-node.md)
         * [Helm](prereqs/helm.md)
         * [Docker Registry](prereqs/docker-registry.md)
     * [Fabric setup](prereqs/fabric-setup.md)
diff --git a/book.json b/book.json
index 93474f0..fd3f609 100644
--- a/book.json
+++ b/book.json
@@ -10,6 +10,33 @@
   "plugins": [
     "anchorjs",
     "smart-nav-collapse",
-    "page-toc"
-  ]
+    "page-toc",
+    "versions-select"
+  ],
+  "pluginsConfig": {
+    "versions": {
+      "options": [
+        {
+          "value": "/",
+          "text": "Master (Devel)"
+        },
+        {
+          "value": "/cord-5.0",
+          "text": "5.0 (Stable)"
+        },
+        {
+          "value": "/cord-4.1",
+          "text": "4.1 (Stable)"
+        },
+        {
+          "value": "/cord-4.0",
+          "text": "4.0 (Stable)"
+        },
+        {
+          "value": "https://wiki.opencord.org/display/CORD/Building+and+Installing+CORD",
+          "text": "3.0 and previous (wiki)"
+        }
+      ]
+    }
+  }
 }
diff --git a/prereqs/helm.md b/prereqs/helm.md
index 1596ca5..e00e831 100644
--- a/prereqs/helm.md
+++ b/prereqs/helm.md
@@ -37,14 +37,8 @@
 
 Once *helm* and *tiller* are installed you should be able to run the command *helm ls* without errors.
 
-## What helm charts are?
+## Done?
 
-Helm charts are the packaging format used by helm. A chart is a collection of files that describe a related set of Kubernetes resources.
+You're ready to deploy CORD components through helm charts! [Install CORD](../profiles/intro.md).
 
-CORD uses charts to define each component. For example:
-
-* [xos-core](../charts/xos-core.md)
-* [onos](../charts/onos.md)
-* [voltha](../charts/voltha.md)
-
-More info on Helm charts at <https://docs.helm.sh/developing_charts/#charts>
+The CORD helm charts reference guide can be found [here](../charts/helm.md).
diff --git a/prereqs/k8s-multi-node.md b/prereqs/k8s-multi-node.md
new file mode 100644
index 0000000..496c980
--- /dev/null
+++ b/prereqs/k8s-multi-node.md
@@ -0,0 +1,108 @@
+# Multi-node Kubernetes
+
+Usually multi-node Kubernetes installation are suggested for production and larger trials.
+
+## Kubernetes multi-node well-known releases
+
+* **Kubespray**
+    * Documentation: <https://github.com/kubernetes-incubator/kubespray>
+    * Minimum requirements:
+        * At least three machines (more info on hardware requirements on the Kubernetes website)
+
+## Kubespray demo / lab-trial installation scripts
+
+For simplicity, CORD provides some easy-to-use automated scripts to quickly setup Kubespray on an arbitrary number of target machines in few commands.
+
+This is meant only for *lab trials* and *demo use*.
+
+At the end of the procedure, Kubespray should be installed.
+
+### Requirements
+
+* **Operator machine** (1x, either physical or virtual machine)
+    * Has Git installed
+    * Has Python3 installed (<https://www.python.org/downloads/>)
+    * Has Stable version of Ansible installed (<http://docs.ansible.com/ansible/latest/intro_installation.html>)
+    * Is able to reach the target servers (ssh into them)
+* **Target machines** (at least 3x, either physical or virtual machines)
+    * Run Ubuntu 16.04 server
+    * Able to communicate together (ping one each other)
+    * Have the same user *cord* configured, that you can use to remotely access them from the operator machine
+    * The user *cord* is sudoer on each machine, and it doesn't need a password to get sudoer privileges
+
+### Get the Kubespray installation scripts
+
+On the operator machine
+```shell
+git clone https://gerrit.opencord.org/automation-tools
+```
+
+Inside, you will find a folder called *kubespray-installer*
+From now on the guide will assume you're running commands in this folder.
+
+### More on the Kubespray installation scripts
+
+The main script (*setup.sh*) provides an helper with instructions. To see it, run *./setup.sh --help*.
+
+The two main functions are:
+
+* Install Kubespray on an arbitrary number of target machines
+* Export the k8s configuration file path as environment variable to let the user access a specific deployment
+
+### Install Kubespray
+
+In the following example we assume that
+
+* Remote machines have the following IP addresses:
+    * 10.90.0.101
+    * 10.90.0.102
+    * 10.90.0.103
+
+* The deployment/POD has been given the arbitrary name *onf*
+
+The installation procedure goes through the following steps (right in this order):
+
+* Cleans up any old Kubespray installation folder (may be there from previous installations)
+* Clones the official Kubespray installation repository
+* Copies the public key of the operator machine, over to each target machine
+* Installs required software and configures the target machines as prescribed in the Kubespray guide
+* Deploys Kubespray
+* Downloads and exports the access configuration outside the Kubespray folder, so it won’t be removed at the next execution of the script (for example while trying to re-deploy the POD, or while deploying a different POD)
+
+To run the installation script, type
+```shell
+./setup.sh -i onf 10.90.0.101 10.90.0.102 10.90.0.103
+```
+
+At the beginning of the installation you'll be asked to insert your password multiple times.
+
+At the end of the procedure, Kubespray should be installed and running on the remote machines.
+
+The configuration file to access the POD will be saved in the subfolder *configs/onf.conf*.
+
+Want to deploy another POD without affecting your existing deployment?
+
+Runt the following:
+```shell
+./setup.sh -i my_other_deployment 192.168.0.1 192.168.0.2 192.168.0.3
+```
+
+Your *onf.conf* configuration will be always there, and your new *my_other_deployment.conf* file as well!
+
+### Access the Kubespray deployment
+
+Kubectl and helm (look [here](kubernetes.md) for more details) need to be pointed to a specific cluster, before being used. This is done through standard KUBECONFIG files.
+
+The script also helps you to automatically export the path pointing to an existing KUBECONFIG file, previously generated during the installation.
+
+To do that -for example against the onf pod just deployed, simply type
+
+```shell
+source setup.sh -s onf
+```
+
+At this point, you can start to use *kubectl* and *helm*.
+
+## Done?
+
+Are you done? You're ready to install kubectl and helm. Instructions [here](kubernetes.md#get-your-kubeconfig-file).
diff --git a/prereqs/k8s-single-node.md b/prereqs/k8s-single-node.md
new file mode 100644
index 0000000..caafec3
--- /dev/null
+++ b/prereqs/k8s-single-node.md
@@ -0,0 +1,33 @@
+# Install Minikube on a single node
+
+Usually single-node Kubernetes installation are suggested for development, testing, and small lab-trial deployments.
+
+## Kubernetes single-node well-known releases
+
+* **Minikube**
+    * Documentation: <https://kubernetes.io/docs/getting-started-guides/minikube/>
+    * Minimum requirements:
+        * One machine, either a physical machine or a VM. It could also be your own PC! It installs natively also on macOS.
+* **Mikrok8s**
+    * Documentation: <https://microk8s.io/>
+    * One machine, Linux based, either physical machine or virtual. It could also be your own PC!
+
+## Minikube installation walkthrough
+
+Install Minikube is so easy that there's no need for us to provide additional custom scripts. What we can do instead, is to point you to the official Minikube installation guide:
+
+### Install Minikube directly on the Linux OS (no VM support)
+
+**Suggested if you want to install Minikube on a Linux machine, either that this is a physical machine or a VM you created (even runing on your laptop)**
+
+Instructions avaialble at <https://github.com/kubernetes/minikube#linux-continuous-integration-without-vm-support>
+
+### Standard Minikube installation (VM support)
+
+**Suggested if you want to run Minikube directly on your Windows or macOS system**
+
+Instructions available at <https://kubernetes.io/docs/getting-started-guides/minikube/#installation>
+
+## Done?
+
+Are you done? You're ready to install kubectl and helm. Instructions [here](kubernetes.md#get-your-kubeconfig-file).
diff --git a/prereqs/kubespray.md b/prereqs/kubespray.md
deleted file mode 100644
index de79c4c..0000000
--- a/prereqs/kubespray.md
+++ /dev/null
@@ -1,112 +0,0 @@
-# Multi-node Kubernetes
-
-Usually multi-node Kubernetes installation are suggested for production and larger trials.
-
-## Kubernetes, multi-node well-known releases
-
-* Kubespray
-    * Documentation: <https://github.com/kubernetes-incubator/kubespray>
-    * What is used for: usually, for production deployments
-    * Minimum requirements:
-        * At least three machines (more info on hardware requirements on the Kubernetes website)
-
-## Kubespray lab-trial installation scripts
-
-For your convenience CORD provides some easy to use automated scripts to quickly install a lab environment in few commands.
-The goal of this script is to install Kubespray on a set of (minimum 3) target machines.
-
-At the end of the procedure, Kubespray should be installed.
-
-### Requirements
-
-* At least 4 machines: operator machine (i.e. laptop) + at least 3 target servers
-* Operator machine
-    * Has Git installed
-    * Has Python3 installed (<https://www.python.org/downloads/>)
-    * Has Stable version of Ansible installed (<http://docs.ansible.com/ansible/latest/intro_installation.html>)
-    * Is able to reach the target servers (ssh into them)
-* Target servers
-    * Have Ubuntu 16.04 installed 
-    * Are able to communicate together (ping one each other)
-    * They have the same user *cord* configured, that you can use to remotely access them from the operator machine
-    * The user *cord* is sudoer on each machine, and it doesn't need a password to get sudoer access
-
-### More on the Kubespray installation scripts
-
-All scripts are in the kubespray-installer folder just downloaded. From now on the guide assumes you’re running commands from this folder.
-
-The main script (*setup.sh*) provides an helper with instructions. Just run *./setup.sh --help* to see it.
-
-The two main functions are:
-
-* Install Kubespray on an arbitrary number of target machines
-* Export the k8s configuration file path as environment variable to let the user access a specific deployment
-
-### Get the Kubespray installation scripts
-
-On the operator machine
-```shell
-git clone https://gerrit.opencord.org/automation-tools
-```
-
-Inside, you will find a folder called *kubespray-installer*
-
-### Install Kubespray
-
-In the following example we assume that
-
-* Remote machines have the following IP addresses:
-    * 10.90.0.101
-    * 10.90.0.102
-    * 10.90.0.103
-
-* The deployment/POD has been given an arbitrary name: onf
-
-The installation procedure goes through the following steps (right in this order):
-
-* Cleans up any old Kubespray folder previously downloaded
-* Downloads a new, stable Kubespray installation repository
-* Copies the public key of the operator over to each target machine
-* Installs required software and configures the target machines as prescribed in the Kubespray guide
-* Deploys Kubespray
-* Downloads and exports the access configuration outside the Kubespray folder, so it won’t be removed at the next execution of the script (for example while trying to re-deploy the POD, or while deploying a different POD)
-
-To run the installation script, type
-```shell
-./setup.sh -i onf 10.90.0.101 10.90.0.102 10.90.0.103
-```
-
-**NOTE:** the first time you use the script, you will be promped to insert your password multiple times.
-
-At the end of the procedure, Kubespray should be installed and running on the remote machines.
-
-The configuration file to access the POD will be saved in the subfolder *configs/onf.conf*.
-
-Want to deploy another POD without affecting your existing deployment?
-
-Runt the following:
-```shell
-./setup.sh -i my_other_deployment 192.168.0.1 192.168.0.2 192.168.0.3
-```
-
-Your *onf.conf* configuration will be always there, and your new *my_other_deployment.conf* file as well!
-
-### Access the Kubespray deployment
-
-Kubectl and helm need to be pointed to a specific cluster, before being used.
-
-The script helps you also to automatically export the path pointing to an existing Kubespray configuration, previously generated during the installation.
-
-For example, if you want to run *kubectl get nodes* against the *onf* cluster just deployed, you should run:
-
-```shell
-source setup.sh -s onf
-```
-
-This will automatically run for you
-
-```shell
-export FULL_PATH/kubespray-installer/configs/onf.conf
-```
-
-As a result, you’ll now be able to successfully run *kubectl get nodes*.
diff --git a/prereqs/minikube.md b/prereqs/minikube.md
deleted file mode 100644
index ed7ee20..0000000
--- a/prereqs/minikube.md
+++ /dev/null
@@ -1,8 +0,0 @@
-# Install Minikube on a single node
-
-* **Documentation**: <https://kubernetes.io/docs/getting-started-guides/minikube/>
-
-* **What is used for**: usually, adopted in development environments. It can be installed even locally on the own machine
-
-* **Minimum requirements**:
-    * One machine, either a physical machine or a VM. It could also be your own PC!
diff --git a/profiles/mcord.md b/profiles/mcord.md
index ebde964..5e60d83 100644
--- a/profiles/mcord.md
+++ b/profiles/mcord.md
@@ -7,7 +7,7 @@
 minima provident aliquam eveniet a tempora saepe. Iusto.
 
 - A Kubernetes cluster (you will need a [multi node
-  cluster](../prereqs/kubespray.md))
+  cluster](../prereqs/k8s-multi-node.md))
 - Helm, follow [this guide](../prereqs/helm.md)
 - Openstack-Helm, follow [this guide](../prereqs/openstack-helm.md)
 
diff --git a/profiles/rcord-lite.md b/profiles/rcord-lite.md
index 2a50479..c3f9156 100644
--- a/profiles/rcord-lite.md
+++ b/profiles/rcord-lite.md
@@ -1,4 +1,4 @@
-# RCORD Lite
+# R-CORD Lite
 
 ## Prerequisites
 
@@ -7,8 +7,8 @@
 minima provident aliquam eveniet a tempora saepe. Iusto.
 
 - A Kubernetes cluster (you can follow one of this guide to install a [single
-  node cluster](../prereqs/minikube.md) or a [multi node
-  cluster](../prereqs/kubespray.md))
+  node cluster](../prereqs/k8s-single-node.md) or a [multi node
+  cluster](../prereqs/k8s-multi-node.md))
 - Helm, follow [this guide](../prereqs/helm.md)
 
 ## CORD Components
@@ -27,7 +27,7 @@
 ## Install the RCORD-Lite helm chart
 
 ```shell
-helm install -n rcord-lite xos_profiles/rcord-lite
+helm install -n rcord-lite xos-profiles/rcord-lite
 ```
 
 ### How to customize the RCORD-Lite helm chart
@@ -59,6 +59,6 @@
 and use it during the installation with:
 
 ```shell
-helm install -n rcord-lite xos_profiles/rcord-lite -f my-rcord-lite-values.yaml
+helm install -n rcord-lite xos-profiles/rcord-lite -f my-rcord-lite-values.yaml
 ```
 
