diff --git a/public/instance/proxy/opac-de-23/.htaccess b/public/instance/proxy/opac-de-23/record/.htaccess
similarity index 52%
rename from public/instance/proxy/opac-de-23/.htaccess
rename to public/instance/proxy/opac-de-23/record/.htaccess
index 62da46e6b380b1247148194cc768690229ec4176..600be62ba45d6644eb0eeeac2537396665f5abd3 100644
--- a/public/instance/proxy/opac-de-23/.htaccess
+++ b/public/instance/proxy/opac-de-23/record/.htaccess
@@ -1,4 +1,4 @@
 RewriteEngine On
-RewriteBase /instance/proxy/opac-de-23/
+RewriteBase /instance/proxy/opac-de-23/record
 
-RewriteRule ^([0-9]+[0-9X](\.[a-z]+)?)$ /instance/proxy/opac-de-23/index.php/$1 [END]
+RewriteRule ^([0-9]+[0-9X](\.[a-z]+)?)$ /instance/proxy/opac-de-23/record/index.php/$1 [END]
diff --git a/public/instance/proxy/opac-de-23/index.php b/public/instance/proxy/opac-de-23/record/index.php
similarity index 90%
rename from public/instance/proxy/opac-de-23/index.php
rename to public/instance/proxy/opac-de-23/record/index.php
index f3ad45bd07666dfb7ba059cae6f0bcad19f26355..08a74b06b22de93918ef0069e8c7614b2cd1faef 100644
--- a/public/instance/proxy/opac-de-23/index.php
+++ b/public/instance/proxy/opac-de-23/record/index.php
@@ -1,6 +1,6 @@
 <?php
 
-require_once __DIR__ . '/../../../../vendor/autoload.php';
+require_once __DIR__ . '/../../../../../vendor/autoload.php';
 
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\HttpFoundation\Response;
@@ -13,9 +13,9 @@ use HAB\Pica\Reader\PicaNormReader;
 use HAB\Pica\Writer\PicaXmlWriter;
 
 define('PSI_TEMPLATE', 'http://opac.lbs-braunschweig.gbv.de/DB=2/PLAIN=Y/CHARSET=UTF8/PLAINTTLCHARSET=UTF8/PPN?PPN=%s');
-define('PICA_TEMPLATE', 'http://uri.hab.de/instance/proxy/opac-de-23/%s.xml');
-define('MODS_TEMPLATE', 'http://uri.hab.de/instance/proxy/opac-de-23/%s.mods');
-define('RDF_TEMPLATE', 'http://uri.hab.de/instance/proxy/opac-de-23/%s.rdf');
+define('PICA_TEMPLATE', 'http://uri.hab.de/instance/proxy/opac-de-23/record/%s.xml');
+define('MODS_TEMPLATE', 'http://uri.hab.de/instance/proxy/opac-de-23/record/%s.mods');
+define('RDF_TEMPLATE', 'http://uri.hab.de/instance/proxy/opac-de-23/record/%s.rdf');
 
 function terminate (Request $request, Response $response) {
     $response->prepare($request);
@@ -85,11 +85,11 @@ switch ($format) {
         if ($type[0] === 'T') {
             $response = new Response('<h1>406 Not Acceptable</h1>', 406, array('Content-Type' => 'text/html'));
         } else {
-            $templateUri = __DIR__ . '/../../../../src/xslt/pica/mods.xsl';
+            $templateUri = __DIR__ . '/../../../../../src/xslt/pica/mods.xsl';
             $sourceUri = sprintf(PICA_TEMPLATE, $ident);
             $content = transform($sourceUri, $templateUri);
             if ($content) {
-                $response = new Response($content, 200, array('Content-Type' => 'application/mods+xml'));
+                $response = new Response($content, 200, array('Content-Type' => 'application/xml'));
                 break;
             }
         }
@@ -100,7 +100,7 @@ switch ($format) {
         if ($type[0] === 'T') {
             $response = new Response('<h1>406 Not Acceptable</h1>', 406, array('Content-Type' => 'text/html'));
         } else {
-            $templateUri = __DIR__ . '/../../../../src/xslt/mods2dc.xsl';
+            $templateUri = __DIR__ . '/../../../../../src/xslt/mods2dc.xsl';
             $sourceUri = sprintf(MODS_TEMPLATE, $ident);
             $content = transform($sourceUri, $templateUri);
             if ($content) {
@@ -113,7 +113,7 @@ switch ($format) {
     case 'rdf':
         $type = (string)$record->getFirstMatchingField('002@/00')->getNthSubfield(0, '0');
         if ($type[0] === 'T') {
-            $templateUri = __DIR__ . '/../../../../src/xslt/pica/auth.xsl';
+            $templateUri = __DIR__ . '/../../../../../src/xslt/pica/auth.xsl';
             $sourceUri = sprintf(PICA_TEMPLATE, $ident);
             $content = transform($sourceUri, $templateUri);
             if ($content) {
@@ -121,7 +121,7 @@ switch ($format) {
                 break;
             }
         } else {
-            $templateUri = __DIR__ . '/../../../../src/xslt/mods2rdf.xsl';
+            $templateUri = __DIR__ . '/../../../../../src/xslt/mods2rdf.xsl';
             $sourceUri = sprintf(MODS_TEMPLATE, $ident);
             $content = transform($sourceUri, $templateUri);
             if ($content) {
diff --git a/src/xslt/mods2rdf.xsl b/src/xslt/mods2rdf.xsl
index 15b58b0052ebe9736138516cfefb6855006fae04..2d743cbd352f9472a3e35e70b3126865de620870 100644
--- a/src/xslt/mods2rdf.xsl
+++ b/src/xslt/mods2rdf.xsl
@@ -9,7 +9,7 @@
                xmlns:mods="http://www.loc.gov/mods/v3"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 
-  <xsl:variable name="proxyBaseUrl">http://uri.hab.de/instance/proxy/opac-de-23/</xsl:variable>
+  <xsl:variable name="proxyBaseUrl">http://uri.hab.de/instance/proxy/opac-de-23/record/</xsl:variable>
 
   <xsl:template match="mods:mods">
     <rdf:RDF>
diff --git a/src/xslt/pica/auth.xsl b/src/xslt/pica/auth.xsl
index f641ef4522426a03e0942ee9356413524b8f391d..47180eb7231bd37c4d6e17ff3172fb8e20211d42 100644
--- a/src/xslt/pica/auth.xsl
+++ b/src/xslt/pica/auth.xsl
@@ -11,7 +11,7 @@
 
   <xsl:template match="pica:record[starts-with(pica:datafield[@tag = '002@']/pica:subfield[@code = '0'], 'Tp')]">
     <rdf:RDF>
-      <foaf:Person rdf:about="http://uri.hab.de/instance/proxy/opac-de-23/{pica:datafield[@tag = '003@']/pica:subfield[@code = '0']}">
+      <foaf:Person rdf:about="http://uri.hab.de/instance/proxy/opac-de-23/record/{pica:datafield[@tag = '003@']/pica:subfield[@code = '0']}">
         <xsl:apply-templates/>
         <xsl:call-template name="foaf:Person">
           <xsl:with-param name="nameField" select="pica:datafield[@tag = '028A']"/>
@@ -22,7 +22,7 @@
 
   <xsl:template match="pica:record[starts-with(pica:datafield[@tag = '002@']/pica:subfield[@code = '0'], 'Tb')]">
     <rdf:RDF>
-      <foaf:Person rdf:about="http://uri.hab.de/instance/proxy/opac-de-23/{pica:datafield[@tag = '003@']/pica:subfield[@code = '0']}">
+      <foaf:Person rdf:about="http://uri.hab.de/instance/proxy/opac-de-23/record/{pica:datafield[@tag = '003@']/pica:subfield[@code = '0']}">
         <xsl:apply-templates/>
         <xsl:call-template name="foaf:Organization">
           <xsl:with-param name="nameField" select="pica:datafield[@tag = '028A']"/>
@@ -34,7 +34,7 @@
   <xsl:template match="pica:record">
     <xsl:variable name="recordType" select="substring(pica:datafield[@tag = '002@']/pica:subfield[@code = '0'], 2, 1)"/>
     <rdf:RDF>
-      <skos:Concept rdf:about="http://uri.hab.de/instance/proxy/opac-de-23/{pica:datafield[@tag = '003@']/pica:subfield[@code = '0']}">
+      <skos:Concept rdf:about="http://uri.hab.de/instance/proxy/opac-de-23/record/{pica:datafield[@tag = '003@']/pica:subfield[@code = '0']}">
         <xsl:apply-templates/>
       </skos:Concept>
     </rdf:RDF>
diff --git a/src/xslt/pica/mods.xsl b/src/xslt/pica/mods.xsl
index c114519080ca0addc9734a923115e57c999d8e09..617df0b72f9669c57d6414af5b095f67d20e2b1f 100644
--- a/src/xslt/pica/mods.xsl
+++ b/src/xslt/pica/mods.xsl
@@ -7,7 +7,7 @@
                xmlns:skos="http://www.w3.org/2004/02/skos/core#"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 
-  <xsl:variable name="proxyBaseUrl">http://uri.hab.de/instance/proxy/opac-de-23/</xsl:variable>
+  <xsl:variable name="proxyBaseUrl">http://uri.hab.de/instance/proxy/opac-de-23/record/</xsl:variable>
 
   <xsl:template match="pica:record">
 
diff --git a/src/xslt/prune.xsl b/src/xslt/prune.xsl
new file mode 100644
index 0000000000000000000000000000000000000000..27c82937db313732bd98165f11159f4a34506eec
--- /dev/null
+++ b/src/xslt/prune.xsl
@@ -0,0 +1,8 @@
+<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+  <xsl:template match="node() | @*">
+    <xsl:copy>
+      <xsl:apply-templates select="node() | @*"/>
+    </xsl:copy>
+  </xsl:template>
+  <xsl:template match="*[normalize-space() = '']"/>
+</xsl:transform>