diff --git a/shellscripts/getfile.sh b/shellscripts/getfile.sh
index 449711e4f5af6dfc07e227559e75ad14943153bc..c3ae3b72a5d4ee350a4f63f0472047c07ef2ecf1 100755
--- a/shellscripts/getfile.sh
+++ b/shellscripts/getfile.sh
@@ -12,6 +12,7 @@
 # ----------------------------------------------------------------------
 
 line="----------------------------------------------------------------------"
+bDebug=0
 
 . $0.cfg
 
@@ -20,27 +21,21 @@ line="----------------------------------------------------------------------"
 # ----------------------------------------------------------------------
 
 function showhelp(){
-echo "
-SYNTAX:
-  -s SECRET   override secret in IMLCI_PKG_SECRET
-  -u URL      URL of iml ci server without trailing /; overrides env variable IMLCI_URL
+echo "SYNTAX:
+  -d          enable debug infos
   -e PHASE    phase; overrides env variable IMLCI_PHASE
+  -f FILE     filename to get; overrides env variable IMLCI_FILE
+  -o OUTFILE  optional output file; default; given filename in current directory
   -p PROJECT  ci project id; overrides env variable IMLCI_PROJECT
-  -f PROJECT  filename; overrides env variable IMLCI_FILE
-
-ACTION:
-   ... without given project and secret
-     projects   show projects
+  -s SECRET   override secret in IMLCI_PKG_SECRET
+  -u URL      URL of iml ci server without trailing /; overrides env variable IMLCI_URL
 
-   ... with project and secret
-     buildinfo [branch]
-                show infos about what happens on build
-     build [branch]
-                execute build
-     phases     show status of phases
+DEFAULTS:
+  You don't need to set all values by command line. Use a config to set defaults
+  $0.cfg
 
 EXAMPLES:
-  `basename $0` -u https://ci.example.com -s newsecret [FILE]
+  `basename $0` -u https://ci.example.com -f [FILE]
 "
 }
 
@@ -49,9 +44,10 @@ function makeRequest(){
 
   local apiMethod=$1
   local apiRequest=$2
-  local secret=$3
+  local outfile=$3
+  local secret=$4
 
-  local outfile=$( mktemp )
+  # local outfile=$( mktemp )
 
   echo $line
   echo $apiMethod ${apiHost}${apiRequest}
@@ -75,33 +71,30 @@ ${apiTS}
     myHash=`echo -n "$data" | openssl sha1 -hmac "${secret}" | cut -f 2 -d" "`
     myHash=`echo -n "$myHash" | base64`
 
-    curl \
+    curl\
       -H "Accept: application/json" -H "Content-Type: application/json" \
       -H "Date: ${apiTS}" \
       -H "Authorization: demo-bash-client:${myHash}" \
       -X $apiMethod \
-      ${IMLCI_URL}${apiRequest} | tee -a $outfile
+      -o "${outfile}.downloading" \
+      --fail \
+      ${IMLCI_URL}${apiRequest}
+    if [ $? -eq 0 ]; then
+        echo Download OK.
+        mv "${outfile}.downloading" "${outfile}"
+        ls -l "${outfile}"
+    else
+        echo ERROR: Download failed.
+        # rm -f "${outfile}.downloading"
+    fi
   else
-    curl -i \
+    curl\
       -H "Accept: application/json" -H "Content-Type: application/json" \
       -X $apiMethod \
-      ${IMLCI_URL}${apiRequest} | tee -a $outfile
+      -o "${outfile}.downloading" \
+      ${IMLCI_URL}${apiRequest}
   fi
 
-  grep "^HTTP\/" $outfile | head -1 | grep " 200 " >/dev/null
-  local rccurl=$?
-
-    echo $line
-    echo OUTPUT:
-    cat $outfile
-    echo $line
-
-  rm -f $outfile
-  if [ $rccurl -ne 0 ]; then
-    echo
-    echo "ERROR: API request failed. CURL request did not get respond status code 200."
-    exit 4
-  fi
 }
 
 
@@ -121,50 +114,43 @@ fi
 
 
 
-while getopts "a:b:u:p:e:f:s:" option; do 
-case ${option} in
-  a)
-    apiAction=$OPTARG
-    ;;
-  b)
-    branch=$OPTARG
-    ;;
-  u)
-    export IMLCI_URL=$OPTARG
-    ;;
-  p)
-    export IMLCI_PROJECT=$OPTARG
-    ;;
-  e)
-    export IMLCI_PHASE=$OPTARG
-    ;;
-  f)
-    export IMLCI_FILE=$OPTARG
-    ;;
-  s)
-    export IMLCI_PKG_SECRET=$OPTARG
-    ;;
-  *)
-    echo ERROR: invalid option [${option}]
-    exit 2
-esac
+while getopts "de:f:o:p:s:u:" option; do 
+    case ${option} in
+      d) bDebug=1 ;;
+      e) export IMLCI_PHASE=$OPTARG ;;
+      f) export IMLCI_FILE=$OPTARG ;;
+      o) export IMLCI_OUTFILE=$OPTARG ;;
+      p) export IMLCI_PROJECT=$OPTARG ;;
+      s) export IMLCI_PKG_SECRET=$OPTARG ;;
+      u) export IMLCI_URL=$OPTARG ;;
+      *)
+        echo ERROR: invalid option [${option}]
+        exit 2
+    esac
 done
 
-echo Params: $*
-echo "IMLCI_URL = $IMLCI_URL"
-echo "IMLCI_PROJECT = $IMLCI_PROJECT"
-echo "IMLCI_PHASE = $IMLCI_PHASE"
-echo "IMLCI_FILE = $IMLCI_FILE"
-echo "IMLCI_PKG_SECRET = $IMLCI_PKG_SECRET"
-echo
-
+test -z ${IMLCI_OUTFILE} && IMLCI_OUTFILE=$IMLCI_FILE
 
-makeRequest GET "/packages/$IMLCI_PHASE/$IMLCI_PROJECT/$IMLCI_FILE" "$IMLCI_PKG_SECRET"
+if [ $bDebug = 1 ]; then
+    echo $line
+    echo
+    echo DEBUG INFOS
+    echo
+    echo ----- content of $0.cfg
+    cat $0.cfg 2>/dev/null
+    echo
+    echo '----- Params (override config values)'
+    echo $*
+    echo
+    echo ----- used values
+    echo "IMLCI_URL = $IMLCI_URL"
+    echo "IMLCI_PKG_SECRET = $IMLCI_PKG_SECRET"
+    echo "IMLCI_PROJECT = $IMLCI_PROJECT"
+    echo "IMLCI_PHASE = $IMLCI_PHASE"
+    echo "IMLCI_FILE = $IMLCI_FILE"
+    echo "IMLCI_OUTFILE = $IMLCI_OUTFILE"
 
-rc=$?
-echo
-echo $line
-date
-echo rc=$rc
+    echo
+fi
 
-exit $rc
+makeRequest GET "/packages/$IMLCI_PHASE/$IMLCI_PROJECT/$IMLCI_FILE" "$IMLCI_OUTFILE" "$IMLCI_PKG_SECRET"