diff --git a/docs/TreeViewTemplate.html b/docs/TreeViewTemplate.html
new file mode 100644
index 0000000000000000000000000000000000000000..0433a1f2e9c58584a459d58b5d071adbd6e22a82
--- /dev/null
+++ b/docs/TreeViewTemplate.html
@@ -0,0 +1,48 @@
+<html>
+
+<head>
+    <title></title>
+    <link rel="stylesheet" href="tree/screen.css">
+    <link rel="stylesheet" href="tree/jquery.treeview.css">
+    <script src="tree/jquery.js" type="text/javascript"></script>
+    <script src="tree/jquery.cookie.js" type="text/javascript"></script>
+    <script src="tree/jquery.treeview.js" type="text/javascript"></script>
+    <script>
+    $(document).ready(function(){
+        $("#browser").treeview({
+        control: "#tree_control_",
+        collapsed: true,
+	animated: 100
+        });
+    });
+    </script>	
+    <style>
+    body{margin:4px 8px;}
+    a { text-decoration: none;}
+    a:link, a:visited {color: blue;}
+    a:hover {color: red;}
+    </style>
+</head>
+
+<body>
+<table border="0" cellspacing="0" style="font-size: 11px;">
+<tr>
+<td>
+<div id="tree_control_" style="padding:5px">
+    <a title="Collapse the entire tree below" href="#"> Collapse All</a>
+    <a title="Expand the entire tree below" href="#"> Expand All</a>
+</div>
+</td>
+<!-- <td><a target="_blank" href="" id="twiki" style="vertical-align: middle;"><img src="tree/twiki.gif" /></a></td> -->
+</tr>
+</table>
+
+<!-- Tree -->
+<ul id="browser" class="filetree treeview">
+%s
+
+</ul>
+<!-- Tree -->
+
+</body>
+</html>
diff --git a/docs/createGrid.py b/docs/createGrid.py
new file mode 100644
index 0000000000000000000000000000000000000000..a0d2cd1b55633512916a3673464bb4be0edd5071
--- /dev/null
+++ b/docs/createGrid.py
@@ -0,0 +1,215 @@
+import os
+indexfile = "html/index.html"
+docsfile  = "html/doxygen.css"
+
+rootdir = os.path.abspath('./')
+rootdir+='/'
+print rootdir
+
+path = rootdir + '/docs/'
+
+def ReadFile(fileName, pathFlag = True):
+#   """This method reads file directly or from path."""
+   if pathFlag:
+     print("Read:", path+fileName)
+     f = open(path+fileName)
+   else:
+     f = open(path+fileName)
+     print("Read:", path+fileName)
+   data = f.read()
+   f.close()
+   return data
+
+
+def HTMLTreeBegin( title, links = {}):
+   html = '\n<li>\n<div class="hitarea expandable-hitarea"></div>\n'
+   html = html + '<span class="folder">%s\n' % title
+   for i in links.keys():
+     html = html + '<a target="_blank" href="%s">[%s]</a> \n' % (links[i], i)
+   html = html + '</span>\n'
+   html = html + '<ul style="display: block;">\n'
+   return html
+
+def WriteFile( fileName, data):
+#   This method writes data
+   print("Write:", path + fileName)
+   f = open(path + fileName, "w")
+   f.write(data)
+   f.close()
+
+def HTMLTreeEnd():
+   return '</li></ul>\n\n'
+
+def Fixcssfile( filename ):
+   addition = """/** atlas insert **/
+.doxyTable{
+    border-collapse:collapse;
+    border:1px solid lightBlue;
+    width: 70%;
+    margin:0 auto;
+}
+
+.doxyTable tr:not(:first-child) {
+    background: #eeeeff;
+    border-spacing: 0px;
+    padding: 0px;
+    border-bottom: 1px solid #c1c1dc;
+}
+
+.doxyTable tr:hover {
+    background: #cde4ec;
+}
+
+.doxyTable td {
+    padding:8px;
+    cursor:pointer;
+}
+
+.accordion {
+    display: none;
+    width: 100%;
+}
+
+div.content {}
+
+div.content h1, h2 {
+    text-align: center;
+}
+"""
+   text = ReadFile(filename)
+   if("/** atlas insert **/" in text):
+      print "Skipping rewriting css"
+      return
+   text += addition
+   WriteFile(filename, text)
+
+def __NewTreePage( domain, package):
+   content = ''
+   content += HTMLTreeBegin(domain)
+   for i in package[domain]:
+     content += HTMLTreeAddItem(i, 'https://gitlab.cern.ch/atlas/athena/tree/master/' + domain + '/'+ i, folder = True)
+   content += HTMLTreeEnd()
+
+   temp = treePageTamplate % (content)
+   WriteFile("html/iframes/%s.html" % domain.lower().replace(' ', '_'), temp)
+
+def CreateNewMainPage(outputFileName, packagemap):
+   contents = """
+<script>function changeState(item) {
+    item.slideToggle("slow");
+}
+
+$( document ).ready(function() {
+    $(".doxyTable > tbody > tr").each(function(){
+        var row = $(this);
+        // skip first row (header), you dont need to assing it accordion
+        // trigger function. it is also the same for rows which doesn't have
+        // id attribute. if a row doesn't have id attr, that means it is
+        // accordion row
+        if(row.attr('id') == 'header' || !row.attr('id')) return;
+
+        // if it has id attribute, assign trigger function
+        row.click(function(){
+            $('div#'+row.attr('id')).slideToggle(256);
+            // we dont want to load whole iframes before they are showed
+            var iframe = $('div#'+row.attr('id')).find('iframe');
+            // no need to set the source again again if already set
+            if(iframe.attr('src')) return;
+
+            iframe.attr('src', iframe.attr('data-src'));
+        });
+    });
+});</script>
+
+   <table class="doxyTable" border="0" cellpadding="0" cellspacing="0">
+   <tr class="top" valign="top">
+   <th class="domain">Domain</th>
+   </tr>
+   """
+   keysI = sorted(packagemap.keys())
+
+
+   for i in keysI:
+      if i=='': continue
+#      contents = contents + '\n<tr class="DCRow">\n'    ######### TAG: TR1
+#      contents = contents + """<td width="50%%" style="padding:8px;cursor:pointer" onclick="toggleHoba('hoba_%s', 'iframes/%s.html')" id="hoba_%s"><a>%s</a></td>\n""" % (i.replace(' ', '_'), i.lower().replace(' ', '_'), i.replace(' ', '_'), i)
+#      contents = contents + '</td>\n'
+#      contents = contents + '</tr>\n\n'               ######### TAG: TR1
+#      contents = contents + """<tr><td colspan="2" style="background:#d7dbe3">
+#        <div style="display:none;" id="hoba_%s_div"><iframe width="100%%" frameborder="0"></iframe></div>
+#        </td></tr>""" % (i.replace(' ', '_'))
+      tagsafe = i.replace(' ', '_')
+      tagsafelc = i.lower().replace(' ', '_')
+
+      basic = """<tr id="{0}"><td width="50%">{0}</td></tr><tr style="padding:0"><td colspan="2" style="padding:0">
+<div class="accordion" id="{0}">
+<iframe width="100%" height="250px" frameborder="0" data-src="iframes/{1}.html"> </iframe>
+</div></td></tr>"""
+      basic = basic.format(tagsafe, tagsafelc)
+      contents += basic
+
+   contents += "</table>"
+   stamp = "</div></div><!-- contents -->"
+   contents += stamp
+   mainPageTemplate = ReadFile(indexfile)
+#   print mainPageTemplate
+   WriteFile(outputFileName, mainPageTemplate.replace(stamp, contents))
+
+def HTMLTreeAddItem( title, links = None, endNode = False, folder = False):
+    if endNode: html = '\t<li class="last">'
+    else: html = '\t<li>'
+    
+    if isinstance(links, str) or isinstance(links, type(u'')):
+        if folder:
+            html = html + '\t<a href="%s" target="_blank" class=""><span class="emptyFolder">%s</span></a>\n' % (links, title)
+        else:
+            html = html + '\t<a href="%s" target="_blank" class=""><span class="file">%s</span></a>\n' % (links, title)
+    elif isinstance(links, dict):
+         if folder:
+            html = html + '<span class="emptyFolder">%s ' % title
+         else:
+             html = html + '<span class="file">%s ' % title
+         for i in links.keys():
+             html = html + '<a target="_blank" href="%s">[%s]</a> \n' % (links[i], i)
+         html = html + '</span>'
+    else:
+        html = html + '\t<span class="file">%s</span>\n' % title
+    return html + '\t</li>\n'
+        
+
+
+
+
+#packagelist=[]
+packagemap ={}
+
+for subdir, dirs, files in os.walk(rootdir):
+    if 'CMakeLists.txt' in files :
+#       packagelist.append(subdir);
+       package =  subdir[len(rootdir):]
+       i = package.find('/')
+       if i<0 : i=0
+       category = package[0: i ]
+       if category in packagemap:
+          packagemap[category].append(package[i+1:])
+       else:
+          packagemap[category] = [package[i+1:]]
+#       print package
+
+#for st in packagelist:
+#   print st;
+#print packagemap
+#print treePageTamplate
+framesdir = path+ 'html/iframes'
+if not os.path.exists(framesdir):
+    os.makedirs(framesdir)
+#category = 
+treePageTamplate=ReadFile("TreeViewTemplate.html", pathFlag = True)
+for k in packagemap.keys():
+   __NewTreePage(str(k), packagemap);
+
+
+
+CreateNewMainPage(indexfile, packagemap)
+Fixcssfile(docsfile)
+