diff --git a/modules/intermediate_format/ifweb.xql b/modules/intermediate_format/ifweb.xql
index e7b67f0128e84e40138b65216cadcd9b4acba911..8eeeef04d66f6278ff510d2791fca2ac24428bc7 100644
--- a/modules/intermediate_format/ifweb.xql
+++ b/modules/intermediate_format/ifweb.xql
@@ -38,16 +38,27 @@ as node()* {
     return $intermediate-format
 };
 
+
+declare function ifweb:transform($doc as node()*, $filename as xs:string,
+$target-dir as xs:string) as node()* {
+    let $preprocessed-data := pre:preprocessing($doc/tei:TEI, $ifweb:replace-whitespace)
+    let $intermediate-format := ident:walk($preprocessed-data, ())
+    let $store := xmldb:store($target-dir, $filename, $intermediate-format)
+    
+    return $intermediate-format
+};
+
+
 declare function ifweb:complete-xml($author as xs:string, $xml as node()*) 
 as node()* {
     let $filename := $author || "-full-if.xml"
     return ifweb:transform($xml, $filename)
 };
 
-declare function ifweb:single-xml($resource as node()*, $filename as xs:string) 
-as node()* {
-    let $filename := substring-before($filename, '.xml') || "-if.xml"
-    return ifweb:transform($resource, $filename)
+declare function ifweb:single-xml($filename as xs:string, $src-dir as xs:string,
+$target-dir as xs:string) as node()* {
+    let $resource := doc($src-dir || $filename)
+    return ifweb:transform($resource, $filename, $target-dir)
 };
 
 declare function ifweb:transform-split-xml($xml as node()*, $filename as xs:string,