diff --git a/README.md b/README.md
index c3775b1..4bae9e6 100644
--- a/README.md
+++ b/README.md
@@ -1,13 +1,8 @@
 [![Travis-CI](https://travis-ci.com/tungstenfabric/tungsten-tempest.svg?branch=master)](https://travis-ci.com/tungstenfabric/tungsten-tempest)
 
-Tempest Integration of Tungsten Fabric (Contrail)
-=================================================
+# Tempest Integration of Tungsten Fabric (Contrail)
 
-This directory contains Tempest tests to cover the contrail project, as well
-as a plugin to automatically load these tests into tempest. This is a set of
-integration tests to be run against a live open-contrail cluster. Tempest has
-test-cases for Contrail API validation, scenarios, and other specific tests
-useful in validating an open-contrail deployment.
+This directory contains Tempest tests to cover the contrail project, as well as a plugin to automatically load these tests into tempest. This is a set of integration tests to be run against a live open-contrail cluster. Tempest has test-cases for Contrail API validation, scenarios, and other specific tests useful in validating an open-contrail deployment.
 
 See the tempest plugin docs for information on using it:
 
@@ -18,14 +13,11 @@
 [http://docs.openstack.org/developer/tempest/](http://docs.openstack.org/developer/tempest/)
 
 
-Quickstart
-----------
+## Quickstart
 
-#Tempest Installation
+### Tempest Installation
 
-To run *tungsten-tempest*, you must first have `Tempest`_ installed and configured 
-properly. Please reference Tempest's `Quickstart`_ guide to do so and for all
-exact details. Follow all the steps outlined therein.
+To run *tungsten-tempest*, you must first have [Tempest](https://docs.openstack.org/tempest) installed and configured properly. Please reference Tempest's [Quickstart](https://docs.openstack.org/tempest/latest/overview.html#quickstart) guide to do so and for all exact details. Follow all the steps outlined therein.
 
 	Here are some sample steps:
 
@@ -40,13 +32,11 @@
 
 	$ ostestr -l
 
-You can install all these including tempest in a virtual
-environment. If virtual environment is not installed, then install it using
-"`sudo apt-get install python-virtualenv`". Afterward, proceed with the steps below.
+You can install all these including tempest in a virtual environment. If virtual environment is not installed, then install it using "`sudo apt-get install python-virtualenv`". Afterward, proceed with the steps below.
 
-#Patrole Installation
+### Patrole Installation
 
-This is done with pip after you check out the [Patrole repo](https://github.com/openstack/patrole "Patrole repo"). Please reference `Patrole` [Quickstart](https://github.com/openstack/patrole/blob/master/README.rst "Quickstart") guide for further details.
+This is done with pip after you check out the [Patrole repo](https://github.com/openstack/patrole "Patrole repo"). Please reference `Patrole` [Quickstart](https://docs.openstack.org/patrole/latest/overview.html?highlight=quickstart#quickstart) guide for further details.
 
     Here are some sample steps:
 
@@ -59,11 +49,11 @@
 	
 	$ ostestr -l | grep patrole
 
-#Tungsten-tempest Installation
+### Tungsten-tempest Installation
 
-This is done with pip after you check out the tungsten-tempest repo::
+This is done with pip after you check out the tungsten-tempest repo:
 
-	$ git clone https://git.openstack.org/tungsten/tungsten-tempest
+	$ git clone https://github.com/tungstenfabric/tungsten-tempest
 	$ pip install -e tungsten_tempest/
 
 NOTE: This can be done within a venv.
@@ -71,13 +61,13 @@
 
 	$ ostestr -l | grep tungsten
 
-#Configuration
+### Configuration
 
-You must properly configure tempest, which is relatively straightforward. For details on configuring tempest refer to the [tempest-configuration](https://github.com/openstack/tempest/blob/master/doc/source/configuration.rst "tempest-configuration").
+You must properly configure tempest, which is relatively straightforward. For details on configuring tempest refer to the [tempest-configuration](https://docs.openstack.org/tempest/latest/configuration.html).
 
-Next you must properly configure Patrole, which is relatively straightforward. For details on configuring Patrole refer to the [patrole-configuration](https://github.com/openstack/patrole/blob/master/doc/source/configuration.rst "patrole-configuration")
+Next you must properly configure Patrole, which is relatively straightforward. For details on configuring Patrole refer to the [patrole-configuration](https://docs.openstack.org/patrole/latest/configuration.html)
 
-Next you must properly configure tungsten-fabric, which is relatively straightforward too. For details on configuring tungsten-fabric refer to the :ref:`tungsten-configuration`.
+Next you must properly configure tungsten-fabric, which is relatively straightforward too. For details on configuring tungsten-fabric refer to the [tungsten-configuration](https://github.com/tungstenfabric/tungsten-tempest/blob/master/doc/source/configuration.rst).
 
 After comfiguring tempmest.conf as per tempest and Patrole requirements, please make below changes too in the patrole section of tempest.conf:
 
@@ -87,7 +77,7 @@
 
     custom_requirements_file must be absolute path of file path of the YAML file that defines your RBAC requirements.
 
-For the details about these flags please refer [patrole.conf.sample](https://github.com/openstack/patrole/blob/master/etc/patrole.conf.sample "patrole.conf.sample") file.
+For the details about these flags please refer [patrole.conf.sample](https://docs.openstack.org/patrole/latest/configuration.html#sample-configuration-file) file.
 
 
 **NOTE:** Make sure you have contrail endpoints in keystone catalog-list already like sdn-l-config-*. Otherwise configure below two keys under [sdn] section of tempest.conf.
@@ -96,7 +86,7 @@
      endpoint_type = <public|admin|internal|publicURL|adminURL|internalURL>
      catalog_type = <Catalog type of the SDN service, default sdn-l-config>
 
-#Running tungsten-tempest 
+### Running tungsten-tempest 
 
 Once the configuration is done you're now ready to run tungsten-fabric.
 
@@ -104,58 +94,42 @@
 
 	$ ostestr run --regex tungsten_tempest_plugin.tests.api
 
-This can also be done using the `tempest_run`_ command. This can be done by running::
+This can also be done using the [tempest_run](https://docs.openstack.org/tempest/latest/run.html) command. This can be done by running:
 
 	$ tempest run --regex '^tungsten_tempest_plugin\.tests\.api'
 
-There is also the option to use testr directly, or any `testr`_ based test runner, like `ostestr`_. For example, from the work-space dir run::
+There is also the option to use testr directly, or any [testr](https://testrepository.readthedocs.org/en/latest/MANUAL.html) based test runner, like [ostestr](https://docs.openstack.org/os-testr/latest/). For example, from the work-space dir run:
 
 	$ stestr --regex '(?!.*\[.*\bslow\b.*\])(^tungsten_tempest_plugin\.tests\.api))'
 
 will run the same set of tests as the default gate jobs.
 
-You can also run tungsten_tempest tests using `tox`_. To do so, ``cd`` into the **Tempest** directory and run::
+You can also run tungsten_tempest tests using [tox](https://tox.readthedocs.io/en/latest/). To do so, ``cd`` into the **Tempest** directory and run:
 
 	$ tox -eall-plugin -- tungstent_tempest_plugin.tests.api
 
-#Log Information
+### Log Information
 
-Log information from tests is captured in ``tempest.log`` under the Tempest repository. Some Patrole debugging information is captured in that log related to expected test results and :ref:`role-overriding`.
+Log information from tests is captured in ``tempest.log`` under the Tempest repository. Some Patrole debugging information is captured in that log related to expected test results and [role-overriding](https://docs.openstack.org/patrole/latest/test_writing_guide.html?highlight=role%20overriding#role-overriding).
 
 More detailed RBAC testing log output is emitted to ``tungsten_log``.
 
-To configure tungsten-tempest's logging, see the :ref:`tungsten-tempest-configuration` guide.
+To configure tungsten-tempest's logging, see the [tungsten-tempest-configuration](https://github.com/tungstenfabric/tungsten-tempest/blob/master/doc/source/configuration.rst) guide.
 
 
-Tempest: [https://github.com/openstack/tempest](https://github.com/openstack/tempest)
+## RBAC Tests
 
-Tempest Quickstart: [https://docs.openstack.org/tempest/latest/overview.html#quickstart](https://docs.openstack.org/tempest/latest/overview.html#quickstart)
-
-tempest_run: [https://docs.openstack.org/tempest/latest/run.html](https://docs.openstack.org/tempest/latest/run.html)
-
-testr: [https://testrepository.readthedocs.org/en/latest/MANUAL.html
-](https://testrepository.readthedocs.org/en/latest/MANUAL.html)
-
-ostestr: [https://docs.openstack.org/os-testr/latest/](https://docs.openstack.org/os-testr/latest/)
-
-tox: [https://tox.readthedocs.io/en/latest/](https://tox.readthedocs.io/en/latest/)
-
-
-
-#RBAC Tests
-----------
-
-To change the role that the tungsten_tempest tests are being run as, edit ``rbac_test_role`` in the ``patrole`` section of tempest.conf: ::
+To change the role that the tungsten_tempest tests are being run as, edit ``rbac_test_role`` in the ``patrole`` section of tempest.conf:
 
     [patrole]
     rbac_test_role = member
     ...
 
-**NOTE**::
+**NOTE**:
 
 The ``rbac_test_role`` is service-specific. member, for example, is an arbitrary role, but by convention is used to designate the default non-admin role in the system. Most tunsgtent_tempest tests should be run with **admin** and **member** roles. However, other services may use entirely different roles.
 
 For more information about the member role and its nomenclature,
 
-please see: `<https://ask.openstack.org/en/question/4759/member-vs-_member_/>`__.
+please see: [https://ask.openstack.org/en/question/4759/member-vs-_member_/](https://ask.openstack.org/en/question/4759/member-vs-_member_/).
 
