diff --git a/delegate/BuildGuideNative.md b/delegate/BuildGuideNative.md
index 0f591d1..6bee157 100644
--- a/delegate/BuildGuideNative.md
+++ b/delegate/BuildGuideNative.md
@@ -1,38 +1,41 @@
-# Introduction
+# Delegate build guide introduction
 
-The ArmNN Delegate can be found within the ArmNN repository but it is a standalone piece of software. However,
-it makes use of the ArmNN library. For this reason we have added two options to build the delegate. The first option
-allows you to build the delegate together with the ArmNN library, the second option is a standalone build 
+The Arm NN Delegate can be found within the Arm NN repository but it is a standalone piece of software. However,
+it makes use of the Arm NN library. For this reason we have added two options to build the delegate. The first option
+allows you to build the delegate together with the Arm NN library, the second option is a standalone build 
 of the delegate.
 
 This tutorial uses an Aarch64 machine with Ubuntu 18.04 installed that can build all components
 natively (no cross-compilation required). This is to keep this guide simple.
 
-1. [Dependencies](#Dependencies)
-   * [Build Tensorflow for C++](#Build Tensorflow for C++)
-   * [Build Flatbuffers](#Build Flatbuffers)
-   * [Build the Arm Compute Library](#Build the Arm Compute Library)
-   * [Build the ArmNN Library](#Build the ArmNN Library)
-2. [Build the TfLite Delegate (Stand-Alone)](#Build the TfLite Delegate (Stand-Alone))
-3. [Build the Delegate together with ArmNN](#Build the Delegate together with ArmNN)
-4. [Integrate the ArmNN TfLite Delegate into your project](#Integrate the ArmNN TfLite Delegate into your project)
+**Table of content:**
+- [Delegate build guide introduction](#delegate-build-guide-introduction)
+- [Dependencies](#dependencies)
+   * [Build Tensorflow for C++](#build-tensorflow-for-c--)
+   * [Build Flatbuffers](#build-flatbuffers)
+   * [Build the Arm Compute Library](#build-the-arm-compute-library)
+   * [Build the Arm NN Library](#build-the-arm-nn-library)
+- [Build the TfLite Delegate (Stand-Alone)](#build-the-tflite-delegate--stand-alone-)
+- [Build the Delegate together with Arm NN](#build-the-delegate-together-with-arm-nn)
+- [Integrate the Arm NN TfLite Delegate into your project](#integrate-the-arm-nn-tflite-delegate-into-your-project)
+
 
 # Dependencies
 
 Build Dependencies:
- * Tensorflow and Tensorflow Lite version 2.3.1
+ * Tensorflow and Tensorflow Lite. This guide uses version 2.3.1 . Other versions might work.
  * Flatbuffers 1.12.0
- * ArmNN 20.11 or higher
+ * Arm NN 20.11 or higher
 
 Required Tools:
- * Git
- * pip
- * wget
- * zip
- * unzip
- * cmake 3.7.0 or higher
- * scons
- * bazel 3.1.0
+ * Git. This guide uses version 2.17.1 . Other versions might work.
+ * pip. This guide uses version 20.3.3 . Other versions might work.
+ * wget. This guide uses version 1.17.1 . Other versions might work.
+ * zip. This guide uses version 3.0 . Other versions might work.
+ * unzip. This guide uses version 6.00 . Other versions might work.
+ * cmake 3.7.0 or higher. This guide uses version 3.7.2
+ * scons. This guide uses version 2.4.1 . Other versions might work.
+ * bazel. This guide uses version 3.1.0 . Other versions might work.
 
 Our first step is to build all the build dependencies I have mentioned above. We will have to create quite a few
 directories. To make navigation a bit easier define a base directory for the project. At this stage we can also
@@ -54,7 +57,7 @@
 pip3 install -U pip numpy wheel
 pip3 install -U keras_preprocessing --no-deps
 
-# Bazel has a dependency on JDK
+# Bazel has a dependency on JDK (The JDK version depends on the bazel version you want to build)
 apt-get install openjdk-11-jdk
 # Build Bazel
 wget -O bazel-3.1.0-dist.zip https://github.com/bazelbuild/bazel/releases/download/3.1.0/bazel-3.1.0-dist.zip
@@ -121,16 +124,16 @@
 
 ## Build the Arm Compute Library
 
-The ArmNN library depends on the Arm Compute Library (ACL). It provides a set of functions that are optimized for 
-both Arm CPUs and GPUs. The Arm Compute Library is used directly by ArmNN to run machine learning workloads on 
+The Arm NN library depends on the Arm Compute Library (ACL). It provides a set of functions that are optimized for 
+both Arm CPUs and GPUs. The Arm Compute Library is used directly by Arm NN to run machine learning workloads on 
 Arm CPUs and GPUs.
 
-It is important to have the right version of ACL and ArmNN to make it work. Luckily, ArmNN and ACL are developed 
-very closely and released together. If you would like to use the ArmNN version "20.11" you can use the same "20.11"
+It is important to have the right version of ACL and Arm NN to make it work. Luckily, Arm NN and ACL are developed 
+very closely and released together. If you would like to use the Arm NN version "20.11" you can use the same "20.11"
 version for ACL too.
 
-To build the Arm Compute Library on your platform, download the Arm Compute Library and check the branch 
-out that contains the version you want to use and build it using `scons`.
+To build the Arm Compute Library on your platform, download the Arm Compute Library and checkout the branch 
+that contains the version you want to use and build it using `scons`.
 ```bash
 cd $BASEDIR
 git clone https://review.mlplatform.org/ml/ComputeLibrary 
@@ -141,9 +144,9 @@
 scons arch=arm64-v8a neon=1 extra_cxx_flags="-fPIC" benchmark_tests=0 validation_tests=0 
 ```
 
-## Build the ArmNN Library
+## Build the Arm NN Library
 
-After building ACL we can now continue building ArmNN. To do so, download the repository and checkout the same 
+After building ACL we can now continue building Arm NN. To do so, download the repository and checkout the same 
 version as you did for ACL. Create a build directory and use cmake to build it.
 ```bash
 cd $BASEDIR
@@ -158,7 +161,7 @@
 
 # Build the TfLite Delegate (Stand-Alone)
 
-The delegate as well as ArmNN is built using cmake. Create a build directory as usual and build the Delegate
+The delegate as well as Arm NN is built using cmake. Create a build directory as usual and build the Delegate
 with the additional cmake arguments shown below
 ```bash
 cd $BASEDIR/armnn/delegate && mkdir build && cd build
@@ -166,15 +169,15 @@
          -DTENSORFLOW_ROOT=$BASEDIR/tensorflow \                  # The top directory of the tensorflow repository
          -DTFLITE_LIB_ROOT=$BASEDIR/tensorflow/bazel-bin \        # In our case the same as TENSORFLOW_LIB_DIR 
          -DFLATBUFFERS_ROOT=$BASEDIR/flatbuffers-1.12.0/install \ # The install directory 
-         -DArmnn_DIR=$BASEDIR/armnn/build \                       # Directory where the ArmNN library can be found
-         -DARMNN_SOURCE_DIR=$BASEDIR/armnn                        # The top directory of the ArmNN repository. 
-                                                                  # Required are the includes for ArmNN
+         -DArmnn_DIR=$BASEDIR/armnn/build \                       # Directory where the Arm NN library can be found
+         -DARMNN_SOURCE_DIR=$BASEDIR/armnn                        # The top directory of the Arm NN repository. 
+                                                                  # Required are the includes for Arm NN
 make
 ```
 
 To ensure that the build was successful you can run the unit tests for the delegate that can be found in 
 the build directory for the delegate. [Doctest](https://github.com/onqtam/doctest) was used to create those tests. Using test filters you can
-filter out tests that your build is not configured for. In this case, because ArmNN was only built for Cpu 
+filter out tests that your build is not configured for. In this case, because Arm NN was only built for Cpu 
 acceleration (CpuAcc), we filter for all test suites that have `CpuAcc` in their name.
 ```bash
 cd $BASEDIR/armnn/delegate/build
@@ -186,12 +189,12 @@
 ```
 
 
-# Build the Delegate together with ArmNN
+# Build the Delegate together with Arm NN
 
-In the introduction it was mentioned that there is a way to integrate the delegate build into ArmNN. This is
+In the introduction it was mentioned that there is a way to integrate the delegate build into Arm NN. This is
 pretty straight forward. The cmake arguments that were previously used for the delegate have to be added
-to the ArmNN cmake arguments. Also another argument `BUILD_ARMNN_TFLITE_DELEGATE` needs to be added to 
-instruct ArmNN to build the delegate as well. The new commands to build ArmNN are as follows:
+to the Arm NN cmake arguments. Also another argument `BUILD_ARMNN_TFLITE_DELEGATE` needs to be added to 
+instruct Arm NN to build the delegate as well. The new commands to build Arm NN are as follows:
 ```bash
 cd $BASEDIR
 git clone "https://review.mlplatform.org/ml/armnn" 
@@ -212,10 +215,10 @@
 The delegate library can then be found in `build/armnn/delegate`.
 
 
-# Integrate the ArmNN TfLite Delegate into your project
+# Integrate the Arm NN TfLite Delegate into your project
 
 The delegate can be integrated into your c++ project by creating a TfLite Interpreter and 
-instructing it to use the ArmNN delegate for the graph execution. This should look similiar
+instructing it to use the Arm NN delegate for the graph execution. This should look similiar
 to the following code snippet.
 ```objectivec
 // Create TfLite Interpreter
@@ -223,7 +226,7 @@
 InterpreterBuilder(tfLiteModel, ::tflite::ops::builtin::BuiltinOpResolver())
                   (&armnnDelegateInterpreter)
 
-// Create the ArmNN Delegate
+// Create the Arm NN Delegate
 armnnDelegate::DelegateOptions delegateOptions(backends);
 std::unique_ptr<TfLiteDelegate, decltype(&armnnDelegate::TfLiteArmnnDelegateDelete)>
                     theArmnnDelegate(armnnDelegate::TfLiteArmnnDelegateCreate(delegateOptions),
diff --git a/delegate/IntegrateDelegateIntoPython.md b/delegate/IntegrateDelegateIntoPython.md
index 69a5ca0..e8624e8 100644
--- a/delegate/IntegrateDelegateIntoPython.md
+++ b/delegate/IntegrateDelegateIntoPython.md
@@ -1,4 +1,4 @@
-# Integrate the TfLite delegate into a python script
+# Integrate the TfLite delegate into TfLite using Python
 If you have built the TfLite delegate as a separate dynamic library then this tutorial will show you how you can
 integrate it in TfLite to run models using python.
 
@@ -36,13 +36,13 @@
 
 # Prepare the environment
 Pre-requisites:
- * Dynamically build ArmNN Delegate library
+ * Dynamically build Arm NN Delegate library
  * python3 (Depends on TfLite version)
  * virtualenv
  * numpy (Depends on TfLite version)
- * tflite_runtime (>=2.0, depends on ArmNN Delegate)
+ * tflite_runtime (>=2.0, depends on Arm NN Delegate)
 
-If you haven't built the delegate yet then take a look at the [build guide](BuildBuideNative.md).
+If you haven't built the delegate yet then take a look at the [build guide](./BuildGuideNative.md).
 
 We recommend creating a virtual environment for this tutorial. For the following code to work python3 is needed. Please
 also check the documentation of the TfLite version you want to use. There might be additional prerequisites for the python
@@ -63,7 +63,7 @@
 Now that the environment is active we can install additional packages we need for our example script. As you can see 
 in the python script at the start of this page, this tutorial uses the `tflite_runtime` rather than the whole tensorflow 
 package. The `tflite_runtime` is a package that wraps the TfLite Interpreter. Therefore it can only be used to run inferences of 
-TfLite models. But since ArmNN is only an inference engine itself this is a perfect match. The 
+TfLite models. But since Arm NN is only an inference engine itself this is a perfect match. The 
 `tflite_runtime` is also much smaller than the whole tensorflow package and better suited to run models on 
 mobile and embedded devices.
 
@@ -73,7 +73,7 @@
 packages. However, that limits you to specific TfLite and Python versions. For this reason we will build the 
 `tflite_runtime` from source.
 
-You will have downloaded the tensorflow repository in order to build the ArmNN delegate. In there you can find further 
+You will have downloaded the tensorflow repository in order to build the Arm NN delegate. In there you can find further 
 instructions on how to build the `tflite_runtime` under `tensorflow/lite/tools/pip_package/README.md`. This tutorial 
 uses bazel to build it natively but there are scripts for cross-compilation available as well.
 ```bash
@@ -91,7 +91,7 @@
 
 Your virtual environment is now all setup. Copy the final python script into a python file e.g. 
 `ExternalDelegatePythonTutorial.py`. Modify the python script above and replace `<your-armnn-build-dir>` and 
-`<your-armnn-repo-dir>` with the directories you have set up. If you've been using the [native build guide](BuildGuideNative.md) 
+`<your-armnn-repo-dir>` with the directories you have set up. If you've been using the [native build guide](./BuildGuideNative.md) 
 this will be `$BASEDIR/armnn/build` and `$BASEDIR/armnn`.
 
 Finally, execute the script:
@@ -109,13 +109,13 @@
 Info: Shutdown time: 0.28 ms
 ```
 
-For more details on what kind of options you can pass to the armnn delegate please check 
+For more details on what kind of options you can pass to the Arm NN delegate please check 
 [armnn_delegate_adaptor.cpp](src/armnn_external_delegate.cpp).
 
 You can also test the functionality of the external delegate adaptor by running some unit tests:
 ```bash
 pip install pytest
 cd armnn/delegate/python/test
-# You can deselect tests that require backends that your hardware doesn't support using markers e.g. `-m "not GpuAccTest`
+# You can deselect tests that require backends that your hardware doesn't support using markers e.g. -m "not GpuAccTest"
 pytest --delegate-dir="<your-armnn-build-dir>/armnn/delegate/libarmnnDelegate.so" -m "not GpuAccTest" 
 ```
diff --git a/delegate/README.md b/delegate/README.md
index 7430f19..ee9f682 100644
--- a/delegate/README.md
+++ b/delegate/README.md
@@ -3,5 +3,5 @@
 'armnnDelegate' is a library for accelerating certain TensorFlow Lite operators on Arm hardware by providing
 the TensorFlow Lite interpreter with an alternative implementation of the operators via its delegation mechanism.
 
-For more information about the TensorFlow Lite operators that are supported,
-see [TensorFlowLiteDelegateSupport.md](./TensorFlowLiteDelegateSupport.md).
+For more information, like a list of supported operators, please visit our doxygen documentation that can be found 
+in the [wiki section](https://github.com/ARM-software/armnn/wiki/Documentation) of our github repository.
diff --git a/delegate/TensorFlowLiteDelegateSupport.md b/delegate/TensorFlowLiteDelegateSupport.md
deleted file mode 100644
index a5d4faf..0000000
--- a/delegate/TensorFlowLiteDelegateSupport.md
+++ /dev/null
@@ -1,115 +0,0 @@
-# TensorFlow Lite operators that the Arm NN TensorFlow Lite Delegate supports
-
-This reference guide provides a list of TensorFlow Lite operators the Arm NN SDK currently supports.
-
-## Fully supported
-
-The Arm NN SDK TensorFlow Lite delegate currently supports the following operators:
-
-* ABS
-
-* ADD
-
-* ARGMAX
-
-* ARGMIN
-
-* AVERAGE_POOL_2D, Supported Fused Activation: RELU , RELU6 , TANH, NONE
-
-* CONCATENATION, Supported Fused Activation: RELU , RELU6 , TANH, NONE
-
-* CONV_2D, Supported Fused Activation: RELU , RELU6 , TANH, NONE
-
-* DEPTH_TO_SPACE
-
-* DEPTHWISE_CONV_2D, Supported Fused Activation: RELU , RELU6 , TANH, NONE
-
-* DEQUANTIZE
-
-* DIV
-
-* EQUAL
-
-* ELU
-
-* EXP
-
-* FULLY_CONNECTED, Supported Fused Activation: RELU , RELU6 , TANH, NONE
-
-* GATHER
-
-* GREATER
-
-* GREATER_OR_EQUAL
-
-* HARD_SWISH
-
-* LESS
-
-* LESS_OR_EQUAL
-
-* LOCAL_RESPONSE_NORMALIZATION
-
-* LOGICAL_AND
-  
-* LOGICAL_NOT
-  
-* LOGICAL_OR
-
-* LOGISTIC
-
-* LOG_SOFTMAX
-
-* L2_NORMALIZATION
-
-* L2_POOL_2D
-
-* MAXIMUM
-
-* MAX_POOL_2D, Supported Fused Activation: RELU , RELU6 , TANH, NONE
-
-* MEAN
-
-* MINIMUM
-
-* MUL
-
-* NEG
-
-* NOT_EQUAL
-
-* PAD
-
-* QUANTIZE
-
-* RESHAPE
-
-* RESIZE_BILINEAR
-
-* RESIZE_NEAREST_NEIGHBOR
-
-* RELU
-
-* RELU6
-
-* RSQRT
-
-* SOFTMAX
-
-* SPACE_TO_DEPTH
-
-* SPLIT
-
-* SPLIT_V
-
-* SQRT
-
-* SUB
-
-* TANH
-
-* TRANSPOSE
-
-* TRANSPOSE_CONV
-
-More machine learning operators will be supported in future releases.
diff --git a/docs/00_software_tools.dox b/docs/01_00_software_tools.dox
similarity index 93%
rename from docs/00_software_tools.dox
rename to docs/01_00_software_tools.dox
index e71b3dc..416e226 100644
--- a/docs/00_software_tools.dox
+++ b/docs/01_00_software_tools.dox
@@ -8,9 +8,11 @@
 /**
 @page swtools Software Tools
 
-On this page you can find all software tools contained in the ArmNN repository. You will find links to how-to guides and
+On this page you can find all software tools contained in the Arm NN repository. You will find links to how-to guides and
 other helpful information in each section.
 
+@subpage delegate
+
 @subpage parsers
 
 @subpage md_python_pyarmnn_README
diff --git a/docs/01_parsers.dox b/docs/01_01_parsers.dox
similarity index 93%
rename from docs/01_parsers.dox
rename to docs/01_01_parsers.dox
index 80d616f..20d0ced 100644
--- a/docs/01_parsers.dox
+++ b/docs/01_01_parsers.dox
@@ -1,25 +1,7 @@
-/// Copyright (c) 2020 ARM Limited.
+/// Copyright (c) 2021 ARM Limited and Contributors. All rights reserved.
 ///
 /// SPDX-License-Identifier: MIT
 ///
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in all
-/// copies or substantial portions of the Software.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-/// SOFTWARE.
-///
 
 namespace armnn
 {
@@ -30,6 +12,13 @@
 Execute models from different machine learning platforms efficiently with our parsers. Simply choose a parser according
 to the model you want to run e.g. If you've got a model in tensorflow format (<model_name>.pb) use our tensorflow-parser.
 
+If you would like to run a Tensorflow Lite (TfLite) model you probably also want to take a look at our [TfLite delegate](delegate).
+
+All parsers are written in C++ but it is also possible to use them in python. For more information on our python
+bindings take a look into the [PyArmNN](pyarmnn) section.
+
+Fallback mechanism
+
 @section S4_caffe_parser ArmNN Caffe Parser
 
 `armnnCaffeParser` is a library for loading neural networks defined in Caffe protobuf files into the Arm NN runtime.
diff --git a/docs/02_deserializer_serializer.dox b/docs/01_02_deserializer_serializer.dox
similarity index 75%
rename from docs/02_deserializer_serializer.dox
rename to docs/01_02_deserializer_serializer.dox
index e61d4a1..047cb5d 100644
--- a/docs/02_deserializer_serializer.dox
+++ b/docs/01_02_deserializer_serializer.dox
@@ -1,25 +1,7 @@
-/// Copyright (c) 2020 ARM Limited.
+/// Copyright (c) 2021 ARM Limited and Contributors. All rights reserved.
 ///
 /// SPDX-License-Identifier: MIT
 ///
-/// Permission is hereby granted, free of charge, to any person obtaining a copy
-/// of this software and associated documentation files (the "Software"), to deal
-/// in the Software without restriction, including without limitation the rights
-/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-/// copies of the Software, and to permit persons to whom the Software is
-/// furnished to do so, subject to the following conditions:
-///
-/// The above copyright notice and this permission notice shall be included in all
-/// copies or substantial portions of the Software.
-///
-/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-/// SOFTWARE.
-///
 
 namespace armnn
 {
diff --git a/docs/01_03_delegate.dox b/docs/01_03_delegate.dox
new file mode 100644
index 0000000..7c7763a
--- /dev/null
+++ b/docs/01_03_delegate.dox
@@ -0,0 +1,144 @@
+/// Copyright (c) 2021 ARM Limited and Contributors. All rights reserved.
+///
+/// SPDX-License-Identifier: MIT
+///
+
+namespace armnn
+{
+/**
+@page delegate TfLite Delegate
+@tableofcontents
+
+
+@section delegateintro About the delegate
+'armnnDelegate' is a library for accelerating certain TensorFlow Lite (TfLite) operators on Arm hardware. It can be
+integrated in TfLite using its delegation mechanism. TfLite will then delegate the execution of operators supported by
+Arm NN to Arm NN.
+
+The main difference to our @ref S6_tf_lite_parser is the amount of operators you can run with it. If none of the active
+backends support an operation in your model you won't be able to execute it with our parser. In contrast to that, TfLite
+only delegates operations to the armnnDelegate if it does support them and otherwise executes them itself. In other
+words, every TfLite model can be executed and every operation in your model that we can accelerate will be accelerated.
+That is the reason why the armnnDelegate is our recommended way to accelerate TfLite models.
+
+If you need help building the armnnDelegate, please take a look at our [build guide](delegate/BuildGuideNative.md).
+An example how to setup TfLite to integrate the armnnDelegate can be found in this
+guide: [Integrate the delegate into python](delegate/IntegrateDelegateIntoPython.md)
+
+
+@section delegatesupport Supported Operators
+This reference guide provides a list of TensorFlow Lite operators the Arm NN SDK currently supports.
+
+@subsection delegatefullysupported Fully supported
+
+The Arm NN SDK TensorFlow Lite delegate currently supports the following operators:
+
+- ABS
+
+- ADD
+
+- ARGMAX
+
+- ARGMIN
+
+- AVERAGE_POOL_2D, Supported Fused Activation: RELU , RELU6 , TANH, NONE
+
+- CONCATENATION, Supported Fused Activation: RELU , RELU6 , TANH, NONE
+
+- CONV_2D, Supported Fused Activation: RELU , RELU6 , TANH, NONE
+
+- DEPTH_TO_SPACE
+
+- DEPTHWISE_CONV_2D, Supported Fused Activation: RELU , RELU6 , TANH, NONE
+
+- DEQUANTIZE
+
+- DIV
+
+- EQUAL
+
+- ELU
+
+- EXP
+
+- FULLY_CONNECTED, Supported Fused Activation: RELU , RELU6 , TANH, NONE
+
+- GATHER
+
+- GREATER
+
+- GREATER_OR_EQUAL
+
+- HARD_SWISH
+
+- LESS
+
+- LESS_OR_EQUAL
+
+- LOCAL_RESPONSE_NORMALIZATION
+
+- LOGICAL_AND
+-
+- LOGICAL_NOT
+-
+- LOGICAL_OR
+
+- LOGISTIC
+
+- LOG_SOFTMAX
+
+- L2_NORMALIZATION
+
+- L2_POOL_2D
+
+- MAXIMUM
+
+- MAX_POOL_2D, Supported Fused Activation: RELU , RELU6 , TANH, NONE
+
+- MEAN
+
+- MINIMUM
+
+- MUL
+
+- NEG
+
+- NOT_EQUAL
+
+- PAD
+
+- QUANTIZE
+
+- RESHAPE
+
+- RESIZE_BILINEAR
+
+- RESIZE_NEAREST_NEIGHBOR
+
+- RELU
+
+- RELU6
+
+- RSQRT
+
+- SOFTMAX
+
+- SPACE_TO_DEPTH
+
+- SPLIT
+
+- SPLIT_V
+
+- SQRT
+
+- SUB
+
+- TANH
+
+- TRANSPOSE
+
+- TRANSPOSE_CONV
+
+More machine learning operators will be supported in future releases.
+**/
+}
\ No newline at end of file
diff --git a/docs/02_build_guides.dox b/docs/02_build_guides.dox
new file mode 100644
index 0000000..c7e6fcd
--- /dev/null
+++ b/docs/02_build_guides.dox
@@ -0,0 +1,26 @@
+/// Copyright (c) 2021 ARM Limited and Contributors. All rights reserved.
+///
+/// SPDX-License-Identifier: MIT
+///
+
+namespace armnn
+{
+/**
+@page buildguides Build Guides
+@tableofcontents
+
+This page links all guides to build and/or install Arm NN tools. Some of these guides are not hosted in our
+repository and will lead you to guides on
+https://developer.arm.com/solutions/machine-learning-on-arm/developer-material/how-to-guides
+
+Arm NN is written using portable C++14 and the build system uses [CMake](https://cmake.org/), therefore it is possible
+to build for a wide variety of target platforms, from a wide variety of host environments.
+
+Arm NN is managed by a single CMake project. That allows you to build multiple tools at once by combining the CMake
+options from different build guides.
+
+## TfLite Delegate build guide
+@subpage md_delegate_BuildGuideNative
+
+**/
+}
\ No newline at end of file
diff --git a/docs/03_use_guides.dox b/docs/03_use_guides.dox
new file mode 100644
index 0000000..8aeb4f0
--- /dev/null
+++ b/docs/03_use_guides.dox
@@ -0,0 +1,21 @@
+/// Copyright (c) 2021 ARM Limited and Contributors. All rights reserved.
+///
+/// SPDX-License-Identifier: MIT
+///
+
+namespace armnn
+{
+/**
+@page useguides Integration Guides
+@tableofcontents
+
+This page links all guides that explain how to use Arm NN tools and how to integrate them into your own project.
+Some of these guides may not be hosted in our repository and will lead you to guides on
+https://developer.arm.com/solutions/machine-learning-on-arm/developer-material/how-to-guides
+
+
+## TfLite delegate guides
+@subpage md_delegate_IntegrateDelegateIntoPython
+
+**/
+}
\ No newline at end of file
diff --git a/docs/Doxyfile b/docs/Doxyfile
index 3cf4ac5..09ad232 100644
--- a/docs/Doxyfile
+++ b/docs/Doxyfile
@@ -813,9 +813,12 @@
 # spaces. See also FILE_PATTERNS and EXTENSION_MAPPING
 # Note: If this tag is empty the current directory is searched.
 
-INPUT                  = ./docs/00_software_tools.dox \
-                         ./docs/01_parsers.dox \
-                         ./docs/02_deserializer_serializer.dox \
+INPUT                  = ./docs/01_00_software_tools.dox \
+                         ./docs/01_01_parsers.dox \
+                         ./docs/01_03_delegate.dox \
+                         ./docs/01_02_deserializer_serializer.dox \
+                         ./docs/02_build_guides.dox \
+                         ./docs/03_use_guides.dox \
                          ./docs/04_backends.dox \
                          ./src/armnnQuantizer/README.md \
                          ./src/armnnConverter/README.md \
@@ -828,6 +831,8 @@
                          ./tests/ \
                          ./delegate/include \
                          ./delegate/src/armnn_external_delegate.cpp \
+                         ./delegate/BuildGuideNative.md \
+                         ./delegate/IntegrateDelegateIntoPython.md \
                          ./README.md \
                          ./docs/FAQ.md
 
