diff --git a/docs/guides/overview/overview.rst b/docs/guides/overview/overview.rst
index fc45705..116eead 100644
--- a/docs/guides/overview/overview.rst
+++ b/docs/guides/overview/overview.rst
@@ -1,7 +1,8 @@
 .. This work is licensed under a Creative Commons Attribution
 .. 4.0 International License.
 .. http://creativecommons.org/licenses/by/4.0
-.. Copyright 2019 Nokia; Copyright 2017-2018 Huawei Technologies Co., Ltd.; Copyright 2017 AT&T Intellectual Property.
+.. Copyright 2019 Nokia; Copyright 2017-2018 Huawei Technologies Co., Ltd.;
+.. Copyright 2017 AT&T Intellectual Property
 
 Open Network Automation Platform Overview
 =========================================
@@ -57,11 +58,12 @@
 In order to design, deploy and operate services and assure these dynamic
 services, ONAP activities are built up as follows:
 
-* **Service design** – Service design is built on a robust design framework that
-  allows specification of the service in all aspects – modeling the resources and
-  relationships that make up the service, specifying the policy rules that guide
-  the service behavior, specifying the applications, analytics and closed control
-  loop events needed for the elastic management of the service.
+* **Service design** – Service design is built on a robust design framework
+  that allows specification of the service in all aspects – modeling the
+  resources and relationships that make up the service, specifying the policy
+  rules that guide the service behavior, specifying the applications, analytic
+  and closed control loop events needed for the elastic management of the
+  service.
 * **Service deployment** – Service deployment is built on an orchestration
   and control framework that is policy-driven (Service Orchestrator and
   Controllers) to provide automated instantiation of the service when
@@ -99,29 +101,39 @@
 Functional overview of ONAP
 ===========================
 
-The following guidelines show the main ONAP activities in a chronological order, presenting ONAP's functional structure:
+The following guidelines show the main ONAP activities in a chronological
+order, presenting ONAP's functional structure:
 
-1. **Service design** - ONAP supports Service Design operations, using the TOSCA approach.
+1. **Service design** - ONAP supports Service Design operations, using the
+TOSCA approach.
 These service design activities are built up of the following subtasks:
- a. Planning VNF onboarding – checking which VNFs will be necessary for the required environment and features
+
+ a. Planning VNF onboarding – checking which VNFs will be necessary for the
+    required environment and features
  b. Creating resources, composing services
  c. Distributing services - Distributing services constitutes of 2 subtasks:
-   * TOSCA C-SAR package is stored in the Catalog
+
+ * TOSCA C-SAR package is stored in the Catalog
    * new service notification is published
 
 2. **Service orchestration and deployment**
+
   a. Defining which VNFs are necessary for the service
   b. Defining orchestration steps
   c. Selecting valid cloud region
   d. Service orchestration calling cloud APIs to deploy VNFs
-   * The onboarding and instantiation of VNFs in ONAP is represented via
+
+  * The onboarding and instantiation of VNFs in ONAP is represented via
      the example of onboarding and instantiating a virtual network function
      (VNF), the virtual Firewall (vFirewall). Following the guidelines and
      steps of this example, any other VNF can be similarly onboarded
      and instantiated to ONAP. See :ref:`virtual Firewall Onboarding and
      Instantiating <vfirewall_usecase>` examples.
+
   e. Controllers applying configuration on VNFs
+
 3. **Service operations**
+
   a. Closed Loop design and deployment
   b. Collecting and evaluating event data
 
@@ -152,7 +164,9 @@
 +----------------------+----------------+----------------------+-----------------------------------------------------------+
 |Release Name          |Release version |Release Date          |Features delivered                                         |
 +======================+================+======================+===========================================================+
-|Dublin                |4.0.0           |2019                  | :ref:`Dublin Release Notes <dublinrelease-notes>`         |
+|El Alto               |5.0.1           | 24 October 2019      | :ref:`El Alto Release Notes <release-notes>`              |
++----------------------+----------------+----------------------+-----------------------------------------------------------+
+|Dublin                |4.0.0           | 9 July 2019          |                                                           |
 +----------------------+----------------+----------------------+-----------------------------------------------------------+
 |Casablanca            |* 3.0.2         |* 31 January 2019     |                                                           |
 |                      |* 3.0.1         |* 30 November 2018    |                                                           |
@@ -166,7 +180,8 @@
 ONAP Blueprints and environments
 ================================
 
-ONAP is able to deploy and operate VNFs running OpenStack based Centralized Private Cloud Instances, as well as Mobile Edge Cloud instances.
+ONAP is able to deploy and operate VNFs running OpenStack based Centralized
+Private Cloud Instances, as well as Mobile Edge Cloud instances.
 ONAP has been tested in the following network environments:
 
 * Voice Over LTE (VoLTE)
@@ -178,7 +193,8 @@
 Licenses
 ========
 
-Open Network Automation Platform (ONAP) is an open source project hosted by the Linux Foundation.
+Open Network Automation Platform (ONAP) is an open source project hosted by the
+Linux Foundation.
 
 ONAP Source Code is licensed under the `Apache Version 2 License <http://www.apache.org/licenses/LICENSE-2.0>`_.
 ONAP Documentation is licensed under the `Creative Commons Attribution 4.0
diff --git a/docs/index.rst b/docs/index.rst
index fc772b8..4b62623 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -21,9 +21,9 @@
 Please find some guidance here on the content of ONAP documentation:
 
  +---------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+
- | Main documentation areas 	                                                   | Description                                                                                   |
+ | Main documentation areas                                                        | Description                                                                                   |
  +=================================================================================+===============================================================================================+
- | :ref:`Release Notes <dublinrelease-notes>`                                      | The Release Notes besides providing the basic information on the main release, also           |
+ | :ref:`Release Notes <release-notes>`                                            | The Release Notes besides providing the basic information on the main release, also           |
  |                                                                                 | presents link to the release information of each, specific ONAP component.                    |
  +---------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------+
  | :ref:`ONAP Overview <overview>`                                                 | ONAP Overview provides generic and high-level guidance on the mission and main                |
diff --git a/docs/release/index.rst b/docs/release/index.rst
index d915b59..453d7c1 100644
--- a/docs/release/index.rst
+++ b/docs/release/index.rst
@@ -2,20 +2,23 @@
    International License. http://creativecommons.org/licenses/by/4.0
 
 
-.. _dublinrelease-notes:
+.. _release-notes:
 
 El Alto Release Notes
 ^^^^^^^^^^^^^^^^^^^^^
 
-This page provides the release notes for the ONAP El Alto release. This includes details of software versions used, known limitations, and
-outstanding trouble reports.
+This page provides the release notes for the ONAP El Alto release. This
+includes details of software versions used, known limitations, and outstanding
+trouble reports.
 
-Release notes are cumulative for the release, meaning this release note for the El Alto release will have an entry for each Major, Minor, and
-Maintenance
-release, if applicable.
+Release notes are cumulative for the release, meaning this release note for the
+El Alto release will have an entry for each Major, Minor, and
+Maintenance release, if applicable.
 
-Each component within the ONAP solution maintains their own component level release notes and links to those release notes are provided below.
-Details on the specific items delivered in each releaese by each component is maintained in the component specific release notes.
+Each component within the ONAP solution maintains their own component level
+release notes and links to those release notes are provided below.
+Details on the specific items delivered in each releaese by each component is
+maintained in the component specific release notes.
 
 El Alto Major Release 5.0.1
 ===========================
@@ -26,15 +29,17 @@
 
 Project Specific Release Notes
 ==============================
-ONAP releases are specified by a list of project artifact versions in the project repositories and 
-docker container image versions listed in the OOM helm charts.
+ONAP releases are specified by a list of project artifact versions in the
+project repositories and docker container image versions listed in the OOM
+Helm charts.
 Each project provides detailed :ref:`release notes<doc-releaserepos>`
 and prepends to these if/when any updated versions the project team believes
 are compatible with a major release are made available.
 
 Documentation
 =============
-ONAP El Alto Release provides a set selection of documents, see :ref:`ONAP Home<master_index>`.
+ONAP El Alto Release provides a set selection of documents,
+see :ref:`ONAP Home<master_index>`.
 
 The `developer wiki <http://wiki.onap.org>`_ remains a good source of
 information on meeting plans and notes from committees, project teams and
@@ -42,7 +47,8 @@
 
 Security Notes
 ==============
-Details about discovered and mitigated vulnerabilities are in :ref:`ONAP Security <onap-security>`
+Details about discovered and mitigated vulnerabilities are in
+:ref:`ONAP Security <onap-security>`
 
 .. toctree::
    :hidden:
@@ -54,19 +60,24 @@
 - `Badging Requirements <https://github.com/coreinfrastructure/best-practices-badge#core-infrastructure-initiative-best-practices-badge>`_
 - `Badging Status for all ONAP projects <https://bestpractices.coreinfrastructure.org/en/projects?q=onap>`_
 
-Project specific details are in the :ref:`release notes<doc-releaserepos>` for each project.
+Project specific details are in the :ref:`release notes<doc-releaserepos>` for
+each project.
 
 .. index:: maturity
 
 ONAP Maturity Testing Notes
 ===========================
-For El Alto release, ONAP continues to improve in multiple areas of Scalability, Security, Stability and Performance (S3P) metrics.
+For El Alto release, ONAP continues to improve in multiple areas of
+Scalability, Security, Stability and Performance (S3P) metrics.
 
-The Integration team ran the 72 hours stability testing (100% passing rate) and full resilience testing (99.4% passing rate) at ONAP OpenLabs. More details in :ref:`ONAP Maturity Testing Notes <integration-s3p>`
+The Integration team ran the 72 hours stability testing (100% passing rate)
+and full resilience testing (99.4% passing rate) at ONAP OpenLabs. More details
+in :ref:`ONAP Maturity Testing Notes <integration-s3p>`
 
 Known Issues and Limitations
 ============================
-Known Issues and limitations are documented in each :ref:`project Release Notes <doc-releaserepos>`.
+Known Issues and limitations are documented in each
+:ref:`project Release Notes <doc-releaserepos>`.
 
 .. index:: Reporting Bugs
 
