diff --git a/Documentation/classarmnn_1_1profiling_1_1_test_functor_a.xhtml b/Documentation/classarmnn_1_1profiling_1_1_test_functor_a.xhtml
new file mode 100644
index 0000000..2cbc419
--- /dev/null
+++ b/Documentation/classarmnn_1_1profiling_1_1_test_functor_a.xhtml
@@ -0,0 +1,217 @@
+<!-- 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: TestFunctorA Class 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('classarmnn_1_1profiling_1_1_test_functor_a.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="#pub-methods">Public Member Functions</a> &#124;
+<a href="classarmnn_1_1profiling_1_1_test_functor_a-members.xhtml">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">TestFunctorA Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><code>#include &lt;<a class="el" href="_profiling_tests_8hpp_source.xhtml">ProfilingTests.hpp</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for TestFunctorA:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="classarmnn_1_1profiling_1_1_test_functor_a.png" usemap="#TestFunctorA_map" alt=""/>
+  <map id="TestFunctorA_map" name="TestFunctorA_map">
+<area href="classarmnn_1_1profiling_1_1_command_handler_functor.xhtml" alt="CommandHandlerFunctor" shape="rect" coords="83,0,239,24"/>
+<area href="classarmnn_1_1profiling_1_1_test_functor_b.xhtml" alt="TestFunctorB" shape="rect" coords="0,112,156,136"/>
+<area href="classarmnn_1_1profiling_1_1_test_functor_c.xhtml" alt="TestFunctorC" shape="rect" coords="166,112,322,136"/>
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a9cbf98c17d6b7027e60c59fb8ad69a85"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1profiling_1_1_test_functor_a.xhtml#a9cbf98c17d6b7027e60c59fb8ad69a85">GetCount</a> ()</td></tr>
+<tr class="separator:a9cbf98c17d6b7027e60c59fb8ad69a85"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0a4b0531c573c4474c241b778c5f5897"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1profiling_1_1_test_functor_a.xhtml#a0a4b0531c573c4474c241b778c5f5897">operator()</a> (const <a class="el" href="classarmnn_1_1profiling_1_1_packet.xhtml">Packet</a> &amp;packet) override</td></tr>
+<tr class="separator:a0a4b0531c573c4474c241b778c5f5897"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classarmnn_1_1profiling_1_1_command_handler_functor"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classarmnn_1_1profiling_1_1_command_handler_functor')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classarmnn_1_1profiling_1_1_command_handler_functor.xhtml">CommandHandlerFunctor</a></td></tr>
+<tr class="memitem:ad88cf21899e5a0ee2d803eabf3f5dd04 inherit pub_methods_classarmnn_1_1profiling_1_1_command_handler_functor"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1profiling_1_1_command_handler_functor.xhtml#ad88cf21899e5a0ee2d803eabf3f5dd04">CommandHandlerFunctor</a> (uint32_t familyId, uint32_t packetId, uint32_t version)</td></tr>
+<tr class="separator:ad88cf21899e5a0ee2d803eabf3f5dd04 inherit pub_methods_classarmnn_1_1profiling_1_1_command_handler_functor"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a52df705001d502e24a079bd8e0c1e956 inherit pub_methods_classarmnn_1_1profiling_1_1_command_handler_functor"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1profiling_1_1_command_handler_functor.xhtml#a52df705001d502e24a079bd8e0c1e956">GetFamilyId</a> () const</td></tr>
+<tr class="separator:a52df705001d502e24a079bd8e0c1e956 inherit pub_methods_classarmnn_1_1profiling_1_1_command_handler_functor"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a17b980d48f35a31c27a227e8ceae5402 inherit pub_methods_classarmnn_1_1profiling_1_1_command_handler_functor"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1profiling_1_1_command_handler_functor.xhtml#a17b980d48f35a31c27a227e8ceae5402">GetPacketId</a> () const</td></tr>
+<tr class="separator:a17b980d48f35a31c27a227e8ceae5402 inherit pub_methods_classarmnn_1_1profiling_1_1_command_handler_functor"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7a9568e40773e80ab38c1a7dac4e7089 inherit pub_methods_classarmnn_1_1profiling_1_1_command_handler_functor"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1profiling_1_1_command_handler_functor.xhtml#a7a9568e40773e80ab38c1a7dac4e7089">GetVersion</a> () const</td></tr>
+<tr class="separator:a7a9568e40773e80ab38c1a7dac4e7089 inherit pub_methods_classarmnn_1_1profiling_1_1_command_handler_functor"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a05aaf089b3b02e13bc728e2c8c94cb4e inherit pub_methods_classarmnn_1_1profiling_1_1_command_handler_functor"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1profiling_1_1_command_handler_functor.xhtml#a05aaf089b3b02e13bc728e2c8c94cb4e">~CommandHandlerFunctor</a> ()</td></tr>
+<tr class="separator:a05aaf089b3b02e13bc728e2c8c94cb4e inherit pub_methods_classarmnn_1_1profiling_1_1_command_handler_functor"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock">
+<p class="definition">Definition at line <a class="el" href="_profiling_tests_8hpp_source.xhtml#l00175">175</a> of file <a class="el" href="_profiling_tests_8hpp_source.xhtml">ProfilingTests.hpp</a>.</p>
+</div><h2 class="groupheader">Member Function Documentation</h2>
+<a id="a9cbf98c17d6b7027e60c59fb8ad69a85"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a9cbf98c17d6b7027e60c59fb8ad69a85">&#9670;&nbsp;</a></span>GetCount()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">int GetCount </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="_profiling_tests_8hpp_source.xhtml#l00180">180</a> of file <a class="el" href="_profiling_tests_8hpp_source.xhtml">ProfilingTests.hpp</a>.</p>
+
+<p class="reference">Referenced by <a class="el" href="_profiling_tests_8cpp_source.xhtml#l00326">BOOST_AUTO_TEST_CASE()</a>.</p>
+<div class="fragment"><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;{ <span class="keywordflow">return</span> m_Count; }</div></div><!-- fragment -->
+</div>
+</div>
+<a id="a0a4b0531c573c4474c241b778c5f5897"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0a4b0531c573c4474c241b778c5f5897">&#9670;&nbsp;</a></span>operator()()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">void operator() </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="classarmnn_1_1profiling_1_1_packet.xhtml">Packet</a> &amp;&#160;</td>
+          <td class="paramname"><em>packet</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Implements <a class="el" href="classarmnn_1_1profiling_1_1_command_handler_functor.xhtml#aee5d34e255ea616c6b4d6877eb3c9fad">CommandHandlerFunctor</a>.</p>
+
+<p class="definition">Definition at line <a class="el" href="_profiling_tests_8hpp_source.xhtml#l00182">182</a> of file <a class="el" href="_profiling_tests_8hpp_source.xhtml">ProfilingTests.hpp</a>.</p>
+
+<p class="reference">References <a class="el" href="_ignore_unused_8hpp_source.xhtml#l00014">armnn::IgnoreUnused()</a>.</p>
+<div class="fragment"><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;    {</div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;        <a class="code" href="namespacearmnn.xhtml#a44affeeb090c3c6a3062830562672e84">IgnoreUnused</a>(packet);</div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;        m_Count++;</div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;    }</div><div class="ttc" id="namespacearmnn_xhtml_a44affeeb090c3c6a3062830562672e84"><div class="ttname"><a href="namespacearmnn.xhtml#a44affeeb090c3c6a3062830562672e84">armnn::IgnoreUnused</a></div><div class="ttdeci">void IgnoreUnused(Ts &amp;&amp;...)</div><div class="ttdef"><b>Definition:</b> <a href="_ignore_unused_8hpp_source.xhtml#l00014">IgnoreUnused.hpp:14</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>src/profiling/test/<a class="el" href="_profiling_tests_8hpp_source.xhtml">ProfilingTests.hpp</a></li>
+</ul>
+</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="namespacearmnn.xhtml">armnn</a></li><li class="navelem"><a class="el" href="namespacearmnn_1_1profiling.xhtml">profiling</a></li><li class="navelem"><a class="el" href="classarmnn_1_1profiling_1_1_test_functor_a.xhtml">TestFunctorA</a></li>
+    <li class="footer">Generated on Fri Mar 13 2020 16:09:21 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>
