diff --git a/Documentation/_sample_dynamic_backend_8cpp.xhtml b/Documentation/_sample_dynamic_backend_8cpp.xhtml
new file mode 100644
index 0000000..fa942bd
--- /dev/null
+++ b/Documentation/_sample_dynamic_backend_8cpp.xhtml
@@ -0,0 +1,219 @@
+<!-- Copyright (c) 2020 ARM Limited. -->
+<!--                                 -->
+<!-- SPDX-License-Identifier: MIT    -->
+<!--                                 -->
+<!-- HTML header for doxygen 1.8.13-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="robots" content="NOINDEX, NOFOLLOW" />
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>ArmNN: src/dynamic/sample/SampleDynamicBackend.cpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+  MathJax.Hub.Config({
+    extensions: ["tex2jax.js"],
+    jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+<link href="stylesheet.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <img alt="ArmNN" src="Arm_NN_horizontal_blue.png" style="max-width: 10rem; margin-top: .5rem; margin-left 10px"/>
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">
+   &#160;<span id="projectnumber">20.02</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_sample_dynamic_backend_8cpp.xhtml','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="summary">
+<a href="#namespaces">Namespaces</a> &#124;
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">SampleDynamicBackend.cpp File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_sample_dynamic_backend_8hpp_source.xhtml">SampleDynamicBackend.hpp</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_sample_dynamic_layer_support_8hpp_source.xhtml">SampleDynamicLayerSupport.hpp</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_sample_dynamic_workload_factory_8hpp_source.xhtml">SampleDynamicWorkloadFactory.hpp</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_sample_memory_manager_8hpp_source.xhtml">SampleMemoryManager.hpp</a>&quot;</code><br />
+<code>#include &lt;<a class="el" href="include_2armnn_2backends_2_i_backend_internal_8hpp_source.xhtml">armnn/backends/IBackendInternal.hpp</a>&gt;</code><br />
+<code>#include &lt;<a class="el" href="include_2armnn_2backends_2_optimization_views_8hpp_source.xhtml">armnn/backends/OptimizationViews.hpp</a>&gt;</code><br />
+</div>
+<p><a href="_sample_dynamic_backend_8cpp_source.xhtml">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespacearmnn"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearmnn.xhtml">armnn</a></td></tr>
+<tr class="memdesc:namespacearmnn"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copyright (c) 2020 ARM Limited. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a40c8a268a9dc9dc910e348534d479f7a"><td class="memItemLeft" align="right" valign="top">constexpr const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacearmnn.xhtml#a40c8a268a9dc9dc910e348534d479f7a">SampleDynamicBackendId</a> ()</td></tr>
+<tr class="separator:a40c8a268a9dc9dc910e348534d479f7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adaff295134ed2825ae43a8e9281b6f2a"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_sample_dynamic_backend_8cpp.xhtml#adaff295134ed2825ae43a8e9281b6f2a">GetBackendId</a> ()</td></tr>
+<tr class="separator:adaff295134ed2825ae43a8e9281b6f2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa8f09f94b0356f870c9bdb9c594cddfc"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_sample_dynamic_backend_8cpp.xhtml#aa8f09f94b0356f870c9bdb9c594cddfc">GetVersion</a> (uint32_t *outMajor, uint32_t *outMinor)</td></tr>
+<tr class="separator:aa8f09f94b0356f870c9bdb9c594cddfc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6a075b7c32d5511f95903749eef44b22"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_sample_dynamic_backend_8cpp.xhtml#a6a075b7c32d5511f95903749eef44b22">BackendFactory</a> ()</td></tr>
+<tr class="separator:a6a075b7c32d5511f95903749eef44b22"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="a6a075b7c32d5511f95903749eef44b22"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6a075b7c32d5511f95903749eef44b22">&#9670;&nbsp;</a></span>BackendFactory()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void* BackendFactory </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_sample_dynamic_backend_8cpp_source.xhtml#l00102">102</a> of file <a class="el" href="_sample_dynamic_backend_8cpp_source.xhtml">SampleDynamicBackend.cpp</a>.</p>
+<div class="fragment"><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;{</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">new</span> armnn::SampleDynamicBackend();</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;}</div></div><!-- fragment -->
+</div>
+</div>
+<a id="adaff295134ed2825ae43a8e9281b6f2a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#adaff295134ed2825ae43a8e9281b6f2a">&#9670;&nbsp;</a></span>GetBackendId()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const char* GetBackendId </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_sample_dynamic_backend_8cpp_source.xhtml#l00084">84</a> of file <a class="el" href="_sample_dynamic_backend_8cpp_source.xhtml">SampleDynamicBackend.cpp</a>.</p>
+
+<p class="reference">References <a class="el" href="_test_dynamic_backend_8cpp_source.xhtml#l00012">TestDynamicBackendId()</a>.</p>
+<div class="fragment"><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;{</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;    <span class="keywordflow">return</span> armnn::SampleDynamicBackend::GetIdStatic().Get().c_str();</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;}</div></div><!-- fragment -->
+</div>
+</div>
+<a id="aa8f09f94b0356f870c9bdb9c594cddfc"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa8f09f94b0356f870c9bdb9c594cddfc">&#9670;&nbsp;</a></span>GetVersion()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void GetVersion </td>
+          <td>(</td>
+          <td class="paramtype">uint32_t *&#160;</td>
+          <td class="paramname"><em>outMajor</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">uint32_t *&#160;</td>
+          <td class="paramname"><em>outMinor</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_sample_dynamic_backend_8cpp_source.xhtml#l00089">89</a> of file <a class="el" href="_sample_dynamic_backend_8cpp_source.xhtml">SampleDynamicBackend.cpp</a>.</p>
+
+<p class="reference">References <a class="el" href="include_2armnn_2backends_2_i_backend_internal_8hpp_source.xhtml#l00149">IBackendInternal::GetApiVersion()</a>, <a class="el" href="include_2armnn_2backends_2_i_backend_internal_8hpp_source.xhtml#l00034">BackendVersion::m_Major</a>, and <a class="el" href="include_2armnn_2backends_2_i_backend_internal_8hpp_source.xhtml#l00035">BackendVersion::m_Minor</a>.</p>
+<div class="fragment"><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;{</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;    <span class="keywordflow">if</span> (!outMajor || !outMinor)</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;    {</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;        <span class="keywordflow">return</span>;</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;    }</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;    <a class="code" href="structarmnn_1_1_backend_version.xhtml">armnn::BackendVersion</a> apiVersion = <a class="code" href="classarmnn_1_1_i_backend_internal.xhtml#a878b8f50d8a2f92ed624803e9f6968ae">armnn::IBackendInternal::GetApiVersion</a>();</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;    *outMajor = apiVersion.<a class="code" href="structarmnn_1_1_backend_version.xhtml#aa98a6e78930567c2d9cdcf320eaddb7a">m_Major</a>;</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;    *outMinor = apiVersion.<a class="code" href="structarmnn_1_1_backend_version.xhtml#a421dbc9bee3ebd2721de5c82e6cd7d20">m_Minor</a>;</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;}</div><div class="ttc" id="structarmnn_1_1_backend_version_xhtml_a421dbc9bee3ebd2721de5c82e6cd7d20"><div class="ttname"><a href="structarmnn_1_1_backend_version.xhtml#a421dbc9bee3ebd2721de5c82e6cd7d20">armnn::BackendVersion::m_Minor</a></div><div class="ttdeci">uint32_t m_Minor</div><div class="ttdef"><b>Definition:</b> <a href="include_2armnn_2backends_2_i_backend_internal_8hpp_source.xhtml#l00035">IBackendInternal.hpp:35</a></div></div>
+<div class="ttc" id="structarmnn_1_1_backend_version_xhtml"><div class="ttname"><a href="structarmnn_1_1_backend_version.xhtml">armnn::BackendVersion</a></div><div class="ttdef"><b>Definition:</b> <a href="include_2armnn_2backends_2_i_backend_internal_8hpp_source.xhtml#l00032">IBackendInternal.hpp:32</a></div></div>
+<div class="ttc" id="classarmnn_1_1_i_backend_internal_xhtml_a878b8f50d8a2f92ed624803e9f6968ae"><div class="ttname"><a href="classarmnn_1_1_i_backend_internal.xhtml#a878b8f50d8a2f92ed624803e9f6968ae">armnn::IBackendInternal::GetApiVersion</a></div><div class="ttdeci">static constexpr BackendVersion GetApiVersion()</div><div class="ttdoc">Returns the version of the Backend API. </div><div class="ttdef"><b>Definition:</b> <a href="include_2armnn_2backends_2_i_backend_internal_8hpp_source.xhtml#l00149">IBackendInternal.hpp:149</a></div></div>
+<div class="ttc" id="structarmnn_1_1_backend_version_xhtml_aa98a6e78930567c2d9cdcf320eaddb7a"><div class="ttname"><a href="structarmnn_1_1_backend_version.xhtml#aa98a6e78930567c2d9cdcf320eaddb7a">armnn::BackendVersion::m_Major</a></div><div class="ttdeci">uint32_t m_Major</div><div class="ttdef"><b>Definition:</b> <a href="include_2armnn_2backends_2_i_backend_internal_8hpp_source.xhtml#l00034">IBackendInternal.hpp:34</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.xhtml">src</a></li><li class="navelem"><a class="el" href="dir_101da30fc6c118b726c448f5a6ab9e53.xhtml">dynamic</a></li><li class="navelem"><a class="el" href="dir_b94b32fb1d16ed92698df04c7e9ebd86.xhtml">sample</a></li><li class="navelem"><a class="el" href="_sample_dynamic_backend_8cpp.xhtml">SampleDynamicBackend.cpp</a></li>
+    <li class="footer">Generated on Fri Mar 13 2020 16:09:15 for ArmNN by
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
+  </ul>
+</div>
+</body>
+</html>
