diff --git a/analyze.sh b/analyze.sh
index 26f28ccf91c0cb1394313fbc4c50e650bca3b82d..e4c6dd603e39b52a638f2a0c1e4b08f106c6a313 100755
--- a/analyze.sh
+++ b/analyze.sh
@@ -17,7 +17,7 @@ ASSUME_GREY=true
 # Output: The name of the identity file
 function im_identify() {
     local SRC="$1"
- 
+
     local IDENTIFY=${SRC%%.*}.identify
     if [ -f "$IDENTIFY" ]; then
         echo "$IDENTIFY"
@@ -52,8 +52,8 @@ function grey_stats() {
     local GREY=${SRC%%.*}.grey
     local INFO=`cat "$IDENTIFY"`
     # TODO: No good as large images does not produce a Colormap
-    #local VALUES=`cat "$IDENTIFY" | grep -B 1000 Colormap`
-    local VALUES="$INFO"
+    local VALUES=`cat "$IDENTIFY" | grep -A 256 Histogram`
+#    local VALUES="$INFO"
 
     local SAVEIFS=$IFS
     IFS=$(echo -en "\n")
diff --git a/image_template.html b/image_template.html
index ba4354779c5fcc88a4c4fa9efbf98d4472dc4155..61258e25e0fd25d4411730f57f101dd7ca8de462 100644
--- a/image_template.html
+++ b/image_template.html
@@ -123,7 +123,7 @@ ${ALTO_ELEMENTS_HTML}
       type: 'legacy-image-pyramid',
       levels:[
         {
-          url: '${PRESENTATION}',
+          url: '${PRESENTATION_LINK}',
           width:  ${PRESENTATION_WIDTH},
           height: ${PRESENTATION_HEIGHT}
         },
diff --git a/quack.sh b/quack.sh
index 71aaa11c5e2a9a20c1f17c732e9d14a6688f633c..198963d9621017a06d237fd4a19791753993b4e4 100755
--- a/quack.sh
+++ b/quack.sh
@@ -125,7 +125,7 @@ TILE="false"
 # If true, a secondary view of the scans will be inserted into the page.
 # The view represents an end-user version of the scan. This will often be 
 # downscaled, levelled, sharpened and JPEG'ed.
-PRESENTATION="true"
+export PRESENTATION="true"
 
 # Overlay colors for indicating burned out high- and low-lights
 export OVERLAY_BLACK=3399FF
@@ -200,7 +200,19 @@ function copyFiles () {
     cp ${ROOT}/*.css "$DEST"
 }
 
+# http://stackoverflow.com/questions/14434549/how-to-expand-shell-variables-in-a-text-file
+# Input: template-file
+function ctemplate() {
+    TMP="`tempfile`.sh"
+    echo 'cat <<END_OF_TEXT' >  $TMP
+    cat  "$1"                >> $TMP
+    echo 'END_OF_TEXT'       >> $TMP
+    . $TMP
+    rm $TMP
+}
+
 # template pattern replacement
+# Deprecated in favor of ctemplate due to better speed in ctemplate
 function template () {
     local TEMPLATE="$1"
     local PATTERN="$2"
@@ -334,6 +346,7 @@ function makeImages() {
 
     if [ ".true" == ".$PRESENTATION" ]; then
         if shouldGenerate "$FORCE_PRESENTATION" "$PRESENTATION_IMAGE" "presentation"; then
+            echo "Should generate"
             $PRESENTATION_SCRIPT "$CONV" "$PRESENTATION_IMAGE"
         fi
     fi
@@ -578,6 +591,7 @@ function makePreviewPage() {
     local TIDENTIFY=`identify "$THUMB_IMAGE" | grep -o " [0-9]\+x[0-9]\\+ "`
     THUMB_WIDTH=`echo $TIDENTIFY | grep -o "[0-9]\+x" | grep -o "[0-9]\+"`
     THUMB_HEIGHT=`echo $TIDENTIFY | grep -o "x[0-9]\+" | grep -o "[0-9]\+"`
+
     if [ ".true" == ".$PRESENTATION" ]; then
         local PIDENTIFY=`identify "$PRESENTATION_IMAGE" | grep -o " [0-9]\+x[0-9]\\+ "`
         PRESENTATION_WIDTH=`echo $PIDENTIFY | grep -o "[0-9]\+x" | grep -o "[0-9]\+"`
@@ -612,20 +626,13 @@ function makePreviewPage() {
         NAVIGATION="${NAVIGATION} | next"
     fi
 
-    cp $IMAGE_TEMPLATE $P
-    IHTML=$P
-    template "$IHTML" "PARENT" "$PARENT"
-    local DATE=`date "+%Y-%m-%d %H:%M"`
-    template "$IHTML" "DATE" "$DATE"
-    template "$IHTML" "UP" "$UP"
-    template "$IHTML" "NAVIGATION" "$NAVIGATION"
-    template "$IHTML" "BASE" "$BASE"
-    template "$IHTML" "SOURCE" "$SOURCE_IMAGE"
-    template "$IHTML" "FULL_RELATIVE_HEIGHT" "$FULL_RELATIVE_HEIGHT"
+
+
+    # PARENT, DATE, UP, NAVIGATION, BASE, SOURCE, FULL_RELATIVE_HEIGHT, EDEST, IMAGE_WIDTH, IMAGE_HEIGHT, TILE_SOURCES, THUMB, THUMB_WIDTH, THUMB_HEIGHT, PRESENTATION, PRESENTATION_WIDTH, PRESENTATION_HEIGHT, WHITE, BLACK, OVERLAYS, OCR_CONTENT, IDNEXTS, IDPREVS, ALTO_ELEMENTS_HTML, HISTOGRAM, ALTO, ALTERNATIVES
+    SOURCE="$SOURCE_IMAGE"
     EDEST=${DEST_IMAGE##*/}
-    template "$IHTML" "IMAGE" "$EDEST"
-    template "$IHTML" "IMAGE_WIDTH" "$IMAGE_WIDTH"
-    template "$IHTML" "IMAGE_HEIGHT" "$IMAGE_HEIGHT"
+    IMAGE="$EDEST"
+
     if [ "true" == "$TILE" ]; then
         TILE_SOURCES="      Image: {\
         xmlns:    \"http://schemas.microsoft.com/deepzoom/2008\",\
@@ -648,52 +655,48 @@ function makePreviewPage() {
         }\
       ]"$'\n'
     fi
-    template "$IHTML" "TILE_SOURCES" "$TILE_SOURCES"
-    template "$IHTML" "THUMB" "$THUMB_LINK"
-    template "$IHTML" "THUMB_WIDTH" "$THUMB_WIDTH"
-    template "$IHTML" "THUMB_HEIGHT" "$THUMB_HEIGHT"
+    THUMB="$THUMB_LINK"
     if [ ".true" == ".$PRESENTATION" ]; then
         PRESENTATION_LINK=${PRESENTATION_IMAGE##*/}
-        template "$IHTML" "PRESENTATION" "$PRESENTATION_LINK"
-        template "$IHTML" "PRESENTATION_WIDTH" "$PRESENTATION_WIDTH"
-        template "$IHTML" "PRESENTATION_HEIGHT" "$PRESENTATION_HEIGHT"
     else
-        template "$IHTML" "PRESENTATION" ""
-        template "$IHTML" "PRESENTATION_WIDTH" "0"
-        template "$IHTML" "PRESENTATION_HEIGHT" "0"
+        PRESENTATION_LINK=""
+        PRESENTATION_WIDTH=0
+        PRESENTATION_HEIGHT=0
     fi
     WHITE_LINK=${WHITE_IMAGE##*/}
-    template "$IHTML" "WHITE" "$WHITE_LINK"
+    WHITE="$WHITE_LINK"
     BLACK_LINK=${BLACK_IMAGE##*/}
-    template "$IHTML" "BLACK" "$BLACK_LINK"
-    template "$IHTML" "OVERLAYS" "$OVERLAYS"
-    template "$IHTML" "OCR_CONTENT" "$OCR_CONTENT"
-    template "$IHTML" "IDNEXTS" "$IDNEXTS"
-    template "$IHTML" "IDPREVS" "$IDPREVS"
-    template "$IHTML" "ALTO_ELEMENTS_HTML" "$ELEMENTS_HTML"
+    BLACK="$BLACK_LINK"
+
+    ALTO_ELEMENTS_HTML="$ELEMENTS_HTML"
     EHIST=${HIST_IMAGE##*/}
-    template "$IHTML" "HISTOGRAM" "$EHIST"
-    template "$IHTML" "ALTO" "$ALTO_FILE"
+    HISTOGRAM="$EHIST"
+    ALTO="$ALTO_FILE"
     if [ "true" == "$RESOLVE_ALTERNATIVES" ]; then
         resolveAlternatives "$SRC_FOLDER" "$IMAGE"
     else
         local ALTERNATIVES_HTML=""
     fi
-    template "$IHTML" "ALTERNATIVES" "$ALTERNATIVES_HTML"
+    ALTERNATIVES="$ALTERNATIVES_HTML"
+
     # image stats
 #    grey_stats "$IMAGE"
-    local GREY=`grey_stats "$IMAGE"`
+    # TODO: Use destination if that is lossless and faster to open?
+    local GREY=`grey_stats "$SOURCE_IMAGE"`
+
     # $PIXELS $UNIQUE $FIRST_COUNT $PERCENT_FIRST $FIRST_GREY $LAST_COUNT $PERCENT_LAST $LAST_GREY
     # 1000095 512 82362 8.23 (0,0,0) 255 .02 (255,255,255)
-    template "$IHTML" "GREY_PIXELS" `echo "$GREY" | cut -d\  -f1`
-    template "$IHTML" "GREY_UNIQUE" `echo "$GREY" | cut -d\  -f2`
-    template "$IHTML" "GREY_COUNT_FIRST" `echo "$GREY" | cut -d\  -f3`
-    template "$IHTML" "GREY_PERCENT_FIRST" `echo "$GREY" | cut -d\  -f4`
-    template "$IHTML" "GREY_FIRST" `echo "$GREY" | cut -d\  -f5`
-    template "$IHTML" "GREY_COUNT_LAST" `echo "$GREY" | cut -d\  -f6`
-    template "$IHTML" "GREY_PERCENT_LAST" `echo "$GREY" | cut -d\  -f7`
-    template "$IHTML" "GREY_LAST" `echo "$GREY" | cut -d\  -f8`
-    
+    GREY_PIXELS=`echo "$GREY" | cut -d\  -f1`
+    GREY_UNIQUE=`echo "$GREY" | cut -d\  -f2`
+    GREY_COUNT_FIRST=`echo "$GREY" | cut -d\  -f3`
+    GREY_PERCENT_FIRST=`echo "$GREY" | cut -d\  -f4`
+    GREY_FIRST=`echo "$GREY" | cut -d\  -f5`
+    GREY_COUNT_LAST=`echo "$GREY" | cut -d\  -f6`
+    GREY_PERCENT_LAST=`echo "$GREY" | cut -d\  -f7`
+    GREY_LAST=`echo "$GREY" | cut -d\  -f8`
+ 
+    ctemplate $IMAGE_TEMPLATE > $P
+   
 #    ls -l "$IMAGE"
 #   echo "$GREY"
     # ***
@@ -795,20 +798,9 @@ function makeIndex() {
         done
     fi
 
-    cp $FOLDER_TEMPLATE $PP
-    FHTML=$PP
-    template "$FHTML" "UP" "$UP"
-    template "$FHTML" "PARENT" "$PARENT"
-    template "$FHTML" "SRC_FOLDER" "$SRC_FOLDER"
-    template "$FHTML" "DEST_FOLDER" "$DEST_FOLDER"
-    template "$FHTML" "IMAGES_HTML" "$IMAGES_HTML"
-    template "$FHTML" "THUMBS_HTML" "$THUMBS_HTML"
-    template "$FHTML" "SUBFOLDERS_HTML" "$SUBFOLDERS_HTML"
-    template "$FHTML" "EDITION_HTML" "$EDITION_HTML"
+    # UP, PARENT, SRC_FOLDER, DEST_FOLDER, IMAGES_HTML, THUMBS_HTML, SUBFOLDERS_HTML, EDITION_HTML
+    ctemplate $FOLDER_TEMPLATE > $PP
     
-#    cat $PP | grep -A 10 Images
-
-
     # Generate pages for sub folders
     # We do this at the end to avoid overriding of variables
     for F in $SUBS; do