diff --git a/build.properties.d/00_default.properties b/build.properties.d/00_default.properties
index af9b94ab0079ee6ab6241ac6869b8b59a33cff5f..d7e81457236d33995e0f21d72488c33198ce4caa 100644
--- a/build.properties.d/00_default.properties
+++ b/build.properties.d/00_default.properties
@@ -45,7 +45,7 @@
 # relative file path in the webui to the logo. The actual files resides in
 # `./src/core/pics/caosdb_logo_medium.png`, relative to the build directory.
 BUILD_NAVBAR_LOGO=pics/caosdb_logo_medium.png
-# The name CaosDB is shown right of the logo image.
+# The name CaosDB is shown to the right of the logo image.
 BUILD_NAVBAR_BRAND_NAME=CaosDB
 
 ##############################################################################
@@ -54,3 +54,8 @@ BUILD_NAVBAR_BRAND_NAME=CaosDB
 
 # Link to the data policy statement document.
 BUILD_FOOTER_DATA_POLICY_HREF=https://indiscale.com/?page_id=156
+
+# Custom footer elements can be placed here (will be placed inside a <div>
+# element).
+BUILD_FOOTER_CUSTOM_ELEMENT_ONE=
+BUILD_FOOTER_CUSTOM_ELEMENT_TWO=
diff --git a/makefile b/makefile
index 2814d5a5ad31c210661edc8717dadb5c04b1b672..b1072187d2e34ffd4bb318110a04a0e7e700be87 100644
--- a/makefile
+++ b/makefile
@@ -115,6 +115,11 @@ run-qunit:
 	[ $$(cat .server_done) -eq 0 ]
 
 cp-ext:
+	# TODO FIXME Base path for not-XSL-expanded files
+	mkdir -p $(PUBLIC_DIR)/html
+	for f in $(wildcard $(SRC_EXT_DIR)/html/*) ; do \
+		echo "y" | cp -i -r "$$(realpath "$$f")" $(PUBLIC_DIR)/html/ ; \
+	done
 	for f in $(wildcard $(SRC_EXT_DIR)/js/*) ; do \
 		echo "y" | cp -i -r "$$f" $(PUBLIC_DIR)/js/ ; \
 		sed -i "/JS_EXTENSIONS/a \<xsl:element name=\"script\"><xsl:attribute name=\"src\"><xsl:value-of select=\"concat\(\$$basepath, 'webinterface/${BUILD_NUMBER}$${f#$(SRC_EXT_DIR)}'\)\" /></xsl:attribute></xsl:element>" $(PUBLIC_DIR)/xsl/main.xsl ; \
@@ -122,10 +127,10 @@ cp-ext:
 	for f in $(wildcard $(SRC_EXT_DIR)/css/*) ; do \
 		echo "y" | cp -i -r "$$f" $(PUBLIC_DIR)/css/ ; \
 		sed -i "/CSS_EXTENSIONS/a \<xsl:element name=\"link\"><xsl:attribute name=\"rel\">stylesheet</xsl:attribute><xsl:attribute name=\"href\"><xsl:value-of select=\"concat\(\$$basepath, 'webinterface/${BUILD_NUMBER}$${f#$(SRC_EXT_DIR)}'\)\" /></xsl:attribute></xsl:element>" $(PUBLIC_DIR)/xsl/main.xsl ; \
-	done
-	mkdir -p $(PUBLIC_DIR)/html
-	for f in $(wildcard $(SRC_EXT_DIR)/html/*) ; do \
-		echo "y" | cp -i -r "$$(realpath "$$f")" $(PUBLIC_DIR)/html/ ; \
+		for html in $(PUBLIC_DIR)/html/* ; do \
+			echo "$$html"; \
+			sed -i "/CSS_EXTENSIONS/a \    <link rel=\"stylesheet\" href=\"$${basepath}/webinterface/${BUILD_NUMBER}$${f#$(SRC_EXT_DIR)}\">" "$$html" ; \
+		done \
 	done
 	for f in $(wildcard $(SRC_EXT_DIR)/pics/*) ; do \
 		echo "y" | cp -i -r "$$(realpath "$$f")" $(PUBLIC_DIR)/pics/ ; \
diff --git a/src/core/css/webcaosdb.css b/src/core/css/webcaosdb.css
index 61649e0343a0c6e80678bb9c93fd93312d1ab443..beb8ab76b7922cd092f9467621199b57817866db 100644
--- a/src/core/css/webcaosdb.css
+++ b/src/core/css/webcaosdb.css
@@ -21,6 +21,16 @@
  * ** end header
  */
 @CHARSET "UTF-8";
+
+body {
+    display: flex;
+    flex-direction: column;
+}
+
+.caosdb-v-main-col {
+    flex-grow: 1;
+}
+
 .caosdb-v-show-only-child {
     display: none;
 }
@@ -36,6 +46,11 @@
 .caosdb-property-text-value {
     white-space: pre-line;
 }
+
+.caosdb-clickable:hover {
+    cursor: pointer;
+}
+
 .caosdb-comment-annotation-text h1 {
     font-size: 24px;
 }
@@ -52,10 +67,18 @@
     font-size: 16px;
 }
 
+.caosdb-f-main {
+    display: flex;
+}
+.caosdb-f-main-entities {
+    width: unset;
+    min-width: 50vw;
+}
+
 .caosdb-show-preview-button, .caosdb-hide-preview-button {
     position: absolute;
-    top: 5px;
-    left: -5px;
+    top: 2px;
+    left: -8px;
 }
 
 .caosdb-entity-heading-attr {
@@ -102,6 +125,10 @@ h5 {
     text-decoration: none;
 }
 
+.navbar-fixed-top, .navbar-fixed-bottom {
+    position: sticky;
+}
+
 .caosdb-property-name {
 	font-weight: bold;
 	margin-left: 8px;
@@ -116,10 +143,6 @@ h5 {
     margin-top: 5px;
 }
 
-#subnav {
-    height: 60px;
-}
-
 .caosdb-square::before {
 	content: "";
 	display: block;
@@ -135,9 +158,13 @@ h5 {
 }
 
 .caosdb-parent-name {
-    font-weight: bold;
-    margin-right: 12px;
+    margin: 0 0.4em;
     font-size: 14px;
+    color: black;
+}
+
+.caosdb-label-name {
+    font-weight: bold;
 }
 
 /* lists of values */
@@ -209,7 +236,7 @@ h5 {
 
 .caosdb-subproperty-divider {
     margin: 4px 0px;
-    border-top: 1px solid #dddddd
+    border-top: 1px solid #dddddd;
 }
 
 .caosdb-prop-label {
@@ -236,7 +263,10 @@ h5 {
     padding-left: 0px;
 }
 .caosdb-v-edit-panel {
+    position: sticky;
+    top: 20px;
     padding: 0px;
+    width: unset;
 }
 
 .caosdb-prop-list-group>.list-group-item {
@@ -265,8 +295,7 @@ h5 {
 
 .caosdb-label-record {
     background-color: #F92108;
-    margin-right: 8px;
-    margin-top: -4px;
+    margin: -4px 0.2em 0 0.4em;
 }
 
 .caosdb-label-recordtype {
@@ -299,25 +328,32 @@ h5 {
     padding-top: 2px;
     padding-bottom: 2px;
     background-color: #f5f5f5;
-    color: #7c7c7c
+    color: #7c7c7c;
 }
 
 .caosdb-parents-heading {
     padding-top: 2px;
     padding-bottom: 2px;
     background-color: #f5f5f5;
-    color: #7c7c7c
+    color: #7c7c7c;
 }
 
 .caosdb-comments-heading {
     padding-top: 2px;
     padding-bottom: 2px;
     background-color: #f5f5f5;
-    color: #7c7c7c
+    color: #7c7c7c;
 }
 
 .caosdb-parent-item {
+    border: 1px solid #666;
+    border-radius: 1ex;
+    padding: .3ex .2em .3ex;
+    margin: 0 0.5em;
+}
 
+.caosdb-f-parent-list {
+    margin: 0 0.5em 0 auto;
 }
 
 .caosdb-unit {
@@ -475,3 +511,17 @@ input[type="file"] {
     max-height: 80vh;
     overflow-y: auto;
 }
+
+footer {
+    background-color: lightgrey;
+    padding: 0.5em;
+}
+
+.caosdb-footer-element {
+    margin: 1em;
+}
+
+.caosdb-bulletsep {
+    margin-left: 2ch;
+    margin-right: 2ch;
+}
diff --git a/src/core/html/imprint.html b/src/core/html/imprint.html
new file mode 100644
index 0000000000000000000000000000000000000000..ec9ae6a397f79bfda8f89b0630c9b487f33b09c7
--- /dev/null
+++ b/src/core/html/imprint.html
@@ -0,0 +1,33 @@
+<!doctype html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8"/>
+    <title>Imprint</title>
+    <script src="/webinterface/${BUILD_NUMBER}/js/jquery.js"></script>
+    <script src="/webinterface/${BUILD_NUMBER}/js/footer.js"></script>
+
+    <link rel="stylesheet" href="https://localhost:10443/webinterface/${BUILD_NUMBER}/css/bootstrap.css">
+    <link rel="stylesheet" href="https://localhost:10443/webinterface/${BUILD_NUMBER}/css/webcaosdb.css">
+    <link rel="stylesheet" href="https://localhost:10443/webinterface/${BUILD_NUMBER}/css/dropzone.css">
+    <link rel="stylesheet" href="https://localhost:10443/webinterface/${BUILD_NUMBER}/css/tour.css">
+    <link rel="stylesheet" href="https://localhost:10443/webinterface/${BUILD_NUMBER}/css/leaflet.css">
+    <link rel="stylesheet" href="https://localhost:10443/webinterface/${BUILD_NUMBER}/css/leaflet-coordinates.css">
+    <link rel="stylesheet" href="https://localhost:10443/webinterface/${BUILD_NUMBER}/css/bootstrap-select.css">
+    <!--CSS_EXTENSIONS-->
+  </head>
+  <body style="width: 80%; margin: auto;">
+    <h1>Imprint</h1>
+    <p>The entity responsible for running this service is:</p>
+    <p>Please contact the system administrator and ask them to enter the correct
+      information here.</p>
+    <h1>Liability notice</h1>
+    <p>The authors of the software are not responsible for the way it is
+      provided to the public or used otherwise.</p>
+    <h1>Trademark notice</h1>
+    <p>The names "CaosDB" and "IndiScale" are registered trademarks owned by
+    IndiScale GmbH.  Permissive uses for the name "CaosDB" can be
+    found <a href="https://gitlab.com/caosdb/">in the sources</a>.</p>
+  <footer>
+  </footer>
+  </body>
+</html>
diff --git a/src/core/js/edit_mode.js b/src/core/js/edit_mode.js
index 1aa5626744150bdd1ba7eda6f0875f5378b30b7e..c9605dc2665ef4b7f3215b97d0950b296b16ff79 100644
--- a/src/core/js/edit_mode.js
+++ b/src/core/js/edit_mode.js
@@ -48,19 +48,12 @@ var edit_mode = new function() {
                 edit_mode.enter_edit_mode();
                 edit_mode.toggle_edit_panel();
             }
-            this.scroll_edit_panel();
-            window.onscroll = this.scroll_edit_panel;
             $('.caosdb-f-edit').css("transition", "top 1s");
         } else {
             window.localStorage.removeItem("edit_mode");
         }
     }
 
-    // TODO: do all these listener need to be part of edit_mode or can they be
-    // declared with "var"
-    this.scroll_edit_panel = function(e) {
-        $('.caosdb-f-edit').css("top", document.documentElement.scrollTop);
-    }
 
     this.dragstart = function(e) {
         e.dataTransfer.setData("text/plain", e.target.id);
diff --git a/src/core/js/ext_map.js b/src/core/js/ext_map.js
index e28b1101d4d310b68de2042c5f1f844b76ec7ea3..7340d4339ac4a6889a03563fafcee23948b7357c 100644
--- a/src/core/js/ext_map.js
+++ b/src/core/js/ext_map.js
@@ -427,7 +427,7 @@ var caosdb_map = new function() {
 
 
             $(panel).hide();
-            $('#subnav').first().after(panel);
+            $('nav').first().after(panel);
 
             logger.trace("leave init_map_panel");
             return panel;
diff --git a/src/core/js/footer.js b/src/core/js/footer.js
new file mode 100644
index 0000000000000000000000000000000000000000..79f3ed0ecb382534d7c997ce0bc230178792f677
--- /dev/null
+++ b/src/core/js/footer.js
@@ -0,0 +1,60 @@
+/*
+ * ** header v3.0
+ * This file is a part of the CaosDB Project.
+ *
+ * Copyright (C) 2019 IndiScale GmbH (info@indiscale.com)
+ * Copyright (C) 2019 Daniel Hornung (d.hornung@indiscale.com)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ * ** end header
+ */
+'use strict';
+
+/**
+ * Call initially.
+ * 
+ * TODO refactor to async function for better readability.
+ * @return
+ */
+function footer_initOnDocumentReady() {
+
+    var xhr = new XMLHttpRequest()
+
+    // TODO Refactor and use transformation.retrieveXsltScript, 
+    //
+    // Event better use the transformation module for injecting an entry point,
+    // because this implementation does not allow for non-HTML content in the
+    // caosdb-footer template.
+    xhr.open("GET", "/webinterface/${BUILD_NUMBER}/xsl/footer.xsl");
+    xhr.addEventListener('load', function() {
+        if (this.status != 200) {
+            // TODO use proper logging framework (log.getLogger("footer.js");)
+            console.log(this.status);
+            return;
+        }
+        var footer_xsl = this.responseXML;
+
+        var foot_content = $('[name = "caosdb-footer"]', footer_xsl)[0];
+        var fragment = document.createRange().createContextualFragment(
+            foot_content.innerHTML);
+        var footer = $("footer")[0];
+        footer.appendChild(fragment);
+
+    });
+    xhr.send();
+
+}
+
+$(document).ready(footer_initOnDocumentReady);
diff --git a/src/core/js/query_shortcuts.js b/src/core/js/query_shortcuts.js
index 9d0bdf3eece6541b48ce4fae1888f096a6603d9c..1b4765cebfd3d95faf2beb9b5e948fba4456de2b 100644
--- a/src/core/js/query_shortcuts.js
+++ b/src/core/js/query_shortcuts.js
@@ -953,7 +953,6 @@ var query_shortcuts = new function() {
 
         $(panel).find(".caosdb-f-shortcuts-toolbox-button").toggle();
         $(panel).find(".caosdb-f-shortcuts-panel-body").toggle()
-        navbar.update_subnav_height();
     }
 
 
diff --git a/src/core/js/webcaosdb.js b/src/core/js/webcaosdb.js
index 77b9229fc6eeca42cd9a9127e53acc4a12d98f56..a66e699605844d6b1160b25bb68913de9722354c 100644
--- a/src/core/js/webcaosdb.js
+++ b/src/core/js/webcaosdb.js
@@ -93,19 +93,12 @@ this.navbar = new function() {
         $("nav.navbar-fixed-top")
             .on("shown.bs.collapse", function(e) {
                 logger.trace("navbar expands", e);
-                navbar.update_subnav_height();
             })
             .on("hidden.bs.collapse", function(e) {
                 logger.trace("navbar shrinks", e);
-                navbar.update_subnav_height();
             });
     }
 
-    this.update_subnav_height = function() {
-        var height = $("nav.navbar-fixed-top").height();
-        $("#subnav").animate({"height": height + 10 + "px"}, 200);
-    }
-
 }
 
 
diff --git a/src/core/webcaosdb.xsl b/src/core/webcaosdb.xsl
index 0a98d7b52721ed05726b5d759e6839435cdceb23..de4bdc9a5728da61799b05b23f5030ed25dfbc4a 100644
--- a/src/core/webcaosdb.xsl
+++ b/src/core/webcaosdb.xsl
@@ -5,8 +5,9 @@
  *
  * Copyright (C) 2018 Research Group Biomedical Physics,
  * Max-Planck-Institute for Dynamics and Self-Organization Göttingen
+ * Copyright (C) 2019 IndiScale GmbH
  * Copyright (C) 2019 Timm Fitschen (t.fitschen@indiscale.com)
- * Copyright (C) 2019 IndiScale GmbH (info@indiscale.com)
+ * Copyright (C) 2019 Daniel Hornung (d.hornung@indiscale.com)
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU Affero General Public License as
@@ -23,37 +24,35 @@
  *
  * ** end header
 -->
-<xsl:stylesheet version="1.0"
-    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-    <xsl:output method="html" />
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+  <xsl:output method="html" />
 
-    <xsl:include href="xsl/main.xsl" />
-    <xsl:include href="xsl/navbar.xsl" />
-    <xsl:include href="xsl/messages.xsl" />
-    <xsl:include href="xsl/query.xsl" />
-    <xsl:include href="xsl/entity.xsl" />
-    <xsl:include href="xsl/filesystem.xsl" />
-
-    <xsl:template match="/">
-        <html lang="en">
-            <head>
-                <meta charset="utf-8" />
-                <meta name="viewport" content="width=device-width, initial-scale=1" />
-                <xsl:call-template name="caosdb-head-title" />
-                <xsl:call-template name="caosdb-head-css" />
-                <xsl:call-template name="caosdb-head-js" />
-            </head>
-            <body>
-                <xsl:call-template name="caosdb-top-navbar" />
-                <xsl:call-template name="paging-panel"/>
-                <xsl:call-template name="caosdb-data-container" />
-                <xsl:call-template name="paging-panel"/>
-            </body>
-            <footer>
-                See data policy statement 
-                <a href="${BUILD_FOOTER_DATA_POLICY_HREF}">here </a>
-            </footer>
-        </html>
-    </xsl:template>
+  <xsl:include href="xsl/main.xsl" />
+  <xsl:include href="xsl/navbar.xsl" />
+  <xsl:include href="xsl/messages.xsl" />
+  <xsl:include href="xsl/query.xsl" />
+  <xsl:include href="xsl/entity.xsl" />
+  <xsl:include href="xsl/filesystem.xsl" />
+  <xsl:include href="xsl/footer.xsl" />
 
+  <xsl:template match="/">
+    <html lang="en">
+      <head>
+        <meta charset="utf-8" />
+        <meta name="viewport" content="width=device-width, initial-scale=1" />
+        <xsl:call-template name="caosdb-head-title" />
+        <xsl:call-template name="caosdb-head-css" />
+        <xsl:call-template name="caosdb-head-js" />
+      </head>
+      <body>
+        <xsl:call-template name="caosdb-top-navbar" />
+        <xsl:call-template name="paging-panel"/>
+        <xsl:call-template name="caosdb-data-container" />
+        <xsl:call-template name="paging-panel"/>
+        <footer>
+          <xsl:call-template name="caosdb-footer"/>
+        </footer>
+      </body>
+    </html>
+  </xsl:template>
 </xsl:stylesheet>
diff --git a/src/core/xsl/entity.xsl b/src/core/xsl/entity.xsl
index 5fc967a32680c166165bd0ed980f5f5384dc9a1c..621755604a87b9bb7fbb9d8125ce414a11757d32 100644
--- a/src/core/xsl/entity.xsl
+++ b/src/core/xsl/entity.xsl
@@ -20,29 +20,34 @@
  * along with this program. If not, see <https://www.gnu.org/licenses/>.
  *
  * ** end header
---><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+ -->
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
   <xsl:output method="html"/>
   <!-- These little colored Rs, RTs, Ps, and Fs which hilite the beginning 
         of a new entity. -->
   <xsl:template match="Property" mode="entity-heading-label">
-    <span class="label caosdb-f-entity-role caosdb-label-property" data-entity-role="Property">P</span>
+    <span class="label caosdb-f-entity-role caosdb-label-property"
+    data-entity-role="Property" title="This entity is a Property.">P</span>
   </xsl:template>
   <xsl:template match="Record" mode="entity-heading-label">
-    <span class="label caosdb-f-entity-role caosdb-label-record" data-entity-role="Record">R</span>
+    <span class="label caosdb-f-entity-role caosdb-label-record"
+    data-entity-role="Record" title="This entity is a Record.">R</span>
   </xsl:template>
   <xsl:template match="RecordType" mode="entity-heading-label">
-    <span class="label caosdb-f-entity-role caosdb-label-recordtype" data-entity-role="RecordType">RT</span>
+    <span class="label caosdb-f-entity-role caosdb-label-recordtype"
+    data-entity-role="RecordType" title="This entity is a Record Type.">RT</span>
   </xsl:template>
   <xsl:template match="File" mode="entity-heading-label">
-    <span class="label caosdb-f-entity-role caosdb-label-file" data-entity-role="File">F</span>
+    <span class="label caosdb-f-entity-role caosdb-label-file"
+    data-entity-role="File" title="This entity is a File.">F</span>
   </xsl:template>
   <xsl:template match="@id" mode="backreference-link">
-    <a class="caosdb-backref-link label caosdb-id-button" title="Find all referencing entities.">
+    <a class="caosdb-backref-link label caosdb-id-button" title="Find all entities which reference this one.">
       <xsl:attribute name="href">
         <xsl:value-of select="concat($entitypath, '?P=0L10&amp;query=FIND+Entity+which+references+', current())"/>
       </xsl:attribute>
-      <span class="glyphicon glyphicon-share-alt flipped-horiz-icon"/> Backref
-        </a>
+      <span class="glyphicon glyphicon-share-alt flipped-horiz-icon"/> References
+    </a>
     <span class="spacer"/>
   </xsl:template>
   <!-- special entity properties like type, checksum, path... -->
@@ -93,6 +98,8 @@
       <xsl:attribute name="data-entity-id">
         <xsl:value-of select="@id"/>
       </xsl:attribute>
+      <!-- A page-unique ID for this entity -->
+      <xsl:variable name="entityid" select="concat('entity_',generate-id())"/>
       <div class="panel-heading caosdb-entity-panel-heading">
         <xsl:attribute name="data-entity-datatype">
           <xsl:value-of select="@datatype"/>
@@ -112,7 +119,7 @@
                         <xsl:value-of select="generate-id()"/>
                       </xsl:attribute>
                       <span class="caosdb-f-parent-actions-panel"></span>
-                      <a class="caosdb-parent-name">
+                      <a class="caosdb-parent-name" title="Go to this parent of the Entity.">
                         <xsl:attribute name="href">
                           <xsl:value-of select="concat($entitypath, @id)"/>
                         </xsl:attribute>
@@ -122,13 +129,22 @@
                   </xsl:for-each>
                 </xsl:if>
               </span>
-              <strong class="caosdb-label-name">
+              <a class="caosdb-label-name" title="Open this Entity separately.">
+                <xsl:attribute name="href">
+                  <xsl:value-of select="concat($entitypath, @id)"/>
+                </xsl:attribute>
                 <xsl:value-of select="@name"/>
-              </strong>
+              </a>
             </h5>
           </div>
           <div class="col-sm-4 text-right">
             <h5>
+              <!-- Button for expanding/collapsing the comments section-->
+              <span class="caosdb-clickable glyphicon glyphicon-comment" data-toggle="collapse" title="Comments" style="margin-right: 10px;">
+                <xsl:attribute name="data-target">
+                  <xsl:value-of select="concat('#', 'comment_', $entityid)"/>
+                </xsl:attribute>
+              </span>
               <xsl:apply-templates mode="backreference-link" select="@id"/>
               <span class="label caosdb-id caosdb-id-button">
                 <xsl:value-of select="@id"/>
@@ -174,11 +190,12 @@
             <xsl:with-param name="path" select="@path"/>
           </xsl:call-template>
         </xsl:if>
-        <!-- Annotations -->
-        <xsl:call-template name="annotation-section">
-          <xsl:with-param name="entityId" select="@id"/>
-        </xsl:call-template>
       </div>
+      <!-- Annotations -->
+      <xsl:call-template name="annotation-section">
+        <xsl:with-param name="entityId" select="@id"/>
+        <xsl:with-param name="collapseId" select="concat('comment_', $entityid)"/>
+      </xsl:call-template>
     </div>
   </xsl:template>
   <!-- Thumbnails of images -->
@@ -261,7 +278,7 @@
       <div class="col-sm-4">
         <h5>
           <xsl:if test="@*[not(contains('+cuid+id+name+',concat('+',name(),'+')))]">
-            <span class="glyphicon glyphicon-collapse-down" data-toggle="collapse" style="margin-right: 10px;">
+            <span class="glyphicon glyphicon-collapse-down caosdb-clickable" data-toggle="collapse" style="margin-right: 10px;">
               <xsl:attribute name="data-target">
                 <xsl:value-of select="concat('#',$collapseid)"/>
               </xsl:attribute>
@@ -456,11 +473,16 @@
   <!-- ANNOTATIONS -->
   <xsl:template name="annotation-section">
     <xsl:param name="entityId"/>
-    <ul class="list-group caosdb-annotation-section">
+    <xsl:param name="collapseId"/>
+    <ul class="collapse list-group caosdb-annotation-section">
       <xsl:attribute name="data-entity-id">
         <xsl:value-of select="$entityId"/>
       </xsl:attribute>
+      <xsl:attribute name="id">
+        <xsl:value-of select="$collapseId"/>
+      </xsl:attribute>
       <li class="list-group-item caosdb-comments-heading">
+        <span class="glyphicon glyphicon-comment" style="margin-right: 1em;"/>
         <strong class="small">Comments</strong>
         <button class="btn btn-link btn-xs pull-right caosdb-new-comment-button">
           <strong>add new comment</strong>
diff --git a/src/core/xsl/footer.xsl b/src/core/xsl/footer.xsl
new file mode 100644
index 0000000000000000000000000000000000000000..0b034e9d5a3b170305b85567f34732ac04755f91
--- /dev/null
+++ b/src/core/xsl/footer.xsl
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * ** header v3.0
+ * This file is a part of the CaosDB Project.
+ *
+ * Copyright (C) 2019 IndiScale GmbH
+ * Copyright (C) 2019 Daniel Hornung (d.hornung@indiscale.com)
+ * Copyright (C) 2019 Timm Fitschen (t.fitschen@indiscale.com)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ * ** end header
+-->
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+  <xsl:output method="html"/>
+
+  <xsl:template name="caosdb-footer">
+    <div class="caosdb-footer-element" id="caosdb-footer-element-custom-1">
+      ${BUILD_FOOTER_CUSTOM_ELEMENT_ONE}
+    </div>
+    <div class="caosdb-footer-element" id="AGPL-notice">
+      This server runs free software licensed under the <a
+      href="https://www.gnu.org/licenses/agpl-3.0.en.html"
+      target="_blank">AGPL-v3</a>, you can obtain the sources <a
+      href="https://gitlab.com/caosdb" target="_blank">here</a>.
+    </div>
+    <div class="caosdb-footer-element" id="caosdb-footer-element-custom-2">
+      ${BUILD_FOOTER_CUSTOM_ELEMENT_TWO}
+    </div>
+    <div class="caosdb-footer-element">
+      <a href="${BUILD_FOOTER_DATA_POLICY_HREF}">Data Policy</a><span class="caosdb-bulletsep">•</span><a href="/webinterface/${BUILD_NUMBER}/html/imprint.html">Imprint/Impressum</a>
+    </div>
+  </xsl:template>
+</xsl:stylesheet>
diff --git a/src/core/xsl/main.xsl b/src/core/xsl/main.xsl
index abbf61b0362e9012198abd039c90ac1408035ecc..cd0ff0d770802793779a7cc836e144a7122ca111 100644
--- a/src/core/xsl/main.xsl
+++ b/src/core/xsl/main.xsl
@@ -7,6 +7,7 @@
  * Max-Planck-Institute for Dynamics and Self-Organization Göttingen
  * Copyright (C) 2019 IndiScale GmbH (info@indiscale.com)
  * Copyright (C) 2019 Timm Fitschen (t.fitschen@indiscale.com)
+ * Copyright (C) 2019 Daniel Hornung (d.hornung@indiscale.com)
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU Affero General Public License as
@@ -133,7 +134,7 @@
       </xsl:attribute>
     </xsl:element>
     <script>
-        $(document).ready(() => paging.initPaging(window.location.href, <xsl:value-of select="/Response/@count"/> ));
+      $(document).ready(() => paging.initPaging(window.location.href, <xsl:value-of select="/Response/@count"/> ));
     </script>
     <xsl:element name="script">
       <xsl:attribute name="src">
@@ -219,7 +220,7 @@
   </xsl:template>
   <xsl:template name="caosdb-data-container">
     <div class="container caosdb-f-main">
-      <div class="row">
+      <div class="row caosdb-v-main-col">
         <div class="panel-group caosdb-f-main-entities">
           <xsl:apply-templates select="/Response/UserInfo"/>
           <xsl:apply-templates mode="top-level-data" select="/Response/*"/>
@@ -231,12 +232,12 @@
             <xsl:call-template name="welcome"/>
           </xsl:if>
         </div>
-        <div class="panel panel-warning caosdb-f-edit caosdb-v-edit-panel caosdb-v-edit-panel hidden">
-          <div class="panel-heading">
-            <h3 class="panel-title">Edit Mode Toolbox</h3>
-          </div>
-          <div class="caosdb-f-edit-panel-body panel-body"></div>
+      </div>
+      <div class="panel panel-warning caosdb-f-edit caosdb-v-edit-panel caosdb-v-edit-panel hidden">
+        <div class="panel-heading">
+          <h3 class="panel-title">Edit Mode Toolbox</h3>
         </div>
+        <div class="caosdb-f-edit-panel-body panel-body"></div>
       </div>
     </div>
   </xsl:template>
diff --git a/src/core/xsl/navbar.xsl b/src/core/xsl/navbar.xsl
index ca5aea7cf552fb717003b61f858a816a41d94dbd..a0b299e7668ca87153761396f7b93a61e9169978 100644
--- a/src/core/xsl/navbar.xsl
+++ b/src/core/xsl/navbar.xsl
@@ -42,6 +42,11 @@
     </li>
   </xsl:template>
   <xsl:template name="caosdb-top-navbar">
+    <!-- Some general settings first, current context should be the <body> node. -->
+    <xsl:if test="count(/Response/*)&lt;2 and not(/Response/Error|/Response/Info|/Response/Warning)">
+        <xsl:attribute name="class">caosdb-welcome</xsl:attribute>
+    </xsl:if>
+    <!-- Now the header follows. -->
     <nav class="navbar navbar-default navbar-fixed-top">
       <div class="container-fluid">
         <div class="navbar-header">
@@ -51,10 +56,10 @@
             <span class="icon-bar"></span>
           </button>
           <a class="navbar-brand">
-            <xsl:if test="${BUILD_NAVBAR_BRAND_NAME} != ''">
-              <xsl:attribute name="class">caosdb-logo</xsl:attribute>
-            </xsl:if>
             <xsl:element name="img">
+              <xsl:if test="'${BUILD_NAVBAR_BRAND_NAME}' != ''">
+                <xsl:attribute name="class">caosdb-logo</xsl:attribute>
+              </xsl:if>
               <xsl:attribute name="src">
                   <xsl:value-of select="concat($basepath,'webinterface/${BUILD_NUMBER}/${BUILD_NAVBAR_LOGO}')"/>
               </xsl:attribute>
@@ -145,7 +150,6 @@
         <xsl:with-param name="class" select="'alert-info'"/>
       </xsl:apply-templates>
     </nav>
-    <div class="container" id="subnav"/>
   </xsl:template>
   <xsl:template match="Role" name="caosdb-user-roles">
     <div class="caosdb-user-role">