diff --git a/templates/match.html.ep b/templates/match.html.ep
index 5ec0742..e6e6866 100644
--- a/templates/match.html.ep
+++ b/templates/match.html.ep
@@ -1,32 +1,37 @@
 %# ID, title, corpusID, author, pubDate, textClass
-<li data-corpus-id="<%= $match->{corpusID} %>"
-    data-doc-id="<%= $match->{docID} %>"
-    data-match-id="<%= $match->{ID} %>"
-    id="<%= $match->{corpusID} %>-<%= $match->{docID} %>-<%= $match->{ID} %>"
-<% if (current_route eq 'match') { %>class="active"<% } %>
-    >
+<li data-corpus-id="<%= $match->{corpusID} %>" \
+data-doc-id="<%= $match->{docID} %>" \
+data-match-id="<%= $match->{ID} %>" \
+id="<%= $match->{corpusID} %>-<%= $match->{docID} %>-<%= $match->{ID} %>"\
+<% if (current_route eq 'match') { %> class="active"<% } =%>
+>
+%#
+%# -- Match information (snippet, morph table, tree information etc.)
   <div>
     <div class="snippet"><%== $match->{snippet} %></div>
     <div class="tokenInfo"></div>
-%#    <div class="treeInfo"></div>
+    <div class="treeInfo"></div>
   </div>
-  <p>
+%#
+%# -- Reference string
+  <p>\
 % if ($match->{title}) {
-    <strong><%= $match->{title} %></strong>
+<strong><%= $match->{title} %></strong>\
 % };
-    <%= $match->{author} ? ' by ' . $match->{author}  : '' %><% if ($match->{title} || $match->{author}) { %>;<% } %>
-    published on <%= date_format $match->{pubDate} %>
-    as <%= $match->{docID} %> (<%= $match->{corpusID} %>)
-  </p>
+<%= $match->{author} ? ' by ' . $match->{author}  : '' %><% if ($match->{title} || $match->{author}) { %>;<% } =%>
+ published on <%= date_format $match->{pubDate} %>\
+ as <%= $match->{docID} %> (<%= $match->{corpusID} %>)\
+</p>
+%#
+%# -- Action buttons
   <ul class="action right">
 % if (current_route ne 'match') {
-    <li class="close" title="Close"><a href="#"><i class="fa fa-toggle-up"></a></i></li>
-%#    <li class="open" title="Open in new tab"><%= link_to 'match', { corpus_id => $match->{corpusID}, doc_id => $match->{docID}, match_id => $match->{ID} }, target => '_blank', begin %><i class="fa fa-external-link-square"></i><% end %></li>
+    <li class="close" title="Close"><a href="#"><i class="fa fa-toggle-up"></i></a></li>
+%#  <li class="open" title="Open in new tab"><%= link_to 'match', { corpus_id => $match->{corpusID}, doc_id => $match->{docID}, match_id => $match->{ID} }, target => '_blank', begin %><i class="fa fa-external-link-square"></i><% end %></li>
     <li class="open" title="Open in new tab"><a href="#<%= $match->{corpusID} %>-<%= $match->{docID} %>-<%= $match->{ID} %>" target="_blank"><i class="fa fa-external-link-square"></i></a></li>
-
-% }
+% };
     <li onclick="showTable(this)" title="Annotations"><i class="fa fa-info-circle"></i></li>
-%#   <li onclick="showTree(this, 'xip', 'c')" title="Tree Visualizations"><i class="fa fa-sitemap"></i></li>
+    <li onclick="showTree(this, 'xip', 'c')" title="Tree Visualizations"><i class="fa fa-sitemap"></i></li>
 %#    <li title="Remember"><i class="fa fa-star-o"></i></li>
   </ul>
 </li>
