diff --git a/CLIENT_DATA/setup32.ins b/CLIENT_DATA/setup32.ins
index a68d038..16d5d3c 100644
--- a/CLIENT_DATA/setup32.ins
+++ b/CLIENT_DATA/setup32.ins
@@ -19,6 +19,16 @@ DefVar $LicensePool$
 
 Set $LogDir$ = "%SystemDrive%\tmp"
 
+; The token BUILDER_VARIABLES will be replaced by opsi-builder.sh
+; and adds the following variables:
+;   from builder-product.cfg :  all variables definded by attribute WINST[index]
+;   from builder-product.cfg :  VENDOR PN VERSION RELEASE PRIORITY ADVICE TYPE   
+;   from opsi-builder.cfg    :  CREATOR_TAG CREATOR_NAME CREATOR_EMAIL           
+;   auto generated winst-variables
+;         $IconFile$: path to product picture
+;
+@@BUILDER_VARIABLES@@
+
 ; ----------------------------------------------------------------
 ; - Please edit the following values                             -
 ; ----------------------------------------------------------------
@@ -81,7 +91,7 @@ endif
 ; Choose one of the following examples as basis for your installation
 ; You can use $LicenseKey$ var to pass a license key to the installer
 ;
-"%ScriptPath%\X86FILE" /S /L=1031
+"$InstallExe$" /S /L=1031
 
 [Files_install]
 ; Example of recursively copying some files into the installation directory:
diff --git a/CLIENT_DATA/uninstall32.ins b/CLIENT_DATA/uninstall32.ins
index 241d724..9d363f3 100644
--- a/CLIENT_DATA/uninstall32.ins
+++ b/CLIENT_DATA/uninstall32.ins
@@ -17,6 +17,16 @@ DefVar $LicensePool$
 
 Set $LogDir$ = "%SystemDrive%\tmp"
 
+; The token BUILDER_VARIABLES will be replaced by opsi-builder.sh
+; and adds the following variables:
+;   from builder-product.cfg :  all variables definded by attribute WINST[index]
+;   from builder-product.cfg :  VENDOR PN VERSION RELEASE PRIORITY ADVICE TYPE   
+;   from opsi-builder.cfg    :  CREATOR_TAG CREATOR_NAME CREATOR_EMAIL           
+;   auto generated winst-variables
+;         $IconFile$: path to product picture
+;
+@@BUILDER_VARIABLES@@
+
 ; ----------------------------------------------------------------
 ; - Please edit the following values                             -
 ; ----------------------------------------------------------------
diff --git a/Testing.txt b/Testing.txt
new file mode 100644
index 0000000..d6b5e6c
--- /dev/null
+++ b/Testing.txt
@@ -0,0 +1,28 @@
+*** Qualitiymanagement/Testing procedure
+
+- Product:
+        - Name: productname
+        - Version: xxx
+        - Release: yyyy
+
+- Environment
+        - OS: Native windows XP-32Bit installation
+	- Preinstalled packages: None (also no aio)
+	- Files used while testing:
+                File1: http://domain.de/file.ext
+
+- Testing process:
+        OPSI-action:
+                - Installation (without dependencies like AIO/Firefox): ??
+        Result:   
+                - File extensions related to program: ??
+                - Start menu entry: ??
+                - Starting/using program: viewer works, File1 is shown correctly: ??
+
+        OPSI-action:
+                - Uninstall
+        Result:
+                - File extensions related to program: unrelated: ??
+                - Start menu entry: none: ??
+
+
diff --git a/build.sh b/build.sh
deleted file mode 100644
index 53ae71d..0000000
--- a/build.sh
+++ /dev/null
@@ -1,122 +0,0 @@
-#!/bin/sh
-PN="ccleaner"
-VERSION="3.14.1616"
-RELEASE="1"
-PRIORITY="0"
-ADVICE=""
-TYPE="public"
-# all downloads should not have any traling parameters like ?downlaodid=1234 .....(should rewrite in python)
-ICON="http://www.windows-8-software.com/wp-content/uploads/2011/03/ccleaner-logo.png"
-X86="http://www.piriform.com/ccleaner/download/slim/downloadfile"
-#http://www.piriform.com/ccleaner/download/slim
-#AMD64="http://downloads.sourceforge.net/sevenzip/7z920-x64.msi"
-ICONFILE=${ICON##*/}
-X86FILE="ccsetup${VERSION}_slim.exe"
-#AMD64FILE=${AMD64##*/}
-
-	if [ -e /var/tmp/opsi/upload/$TYPE/${PN}_${VERSION}-${RELEASE}.opsi ]
-	then
-		echo "package ${PN}_${VERSION}-${RELEASE}.opsi already generated"
-		exit 1
-	fi
-
-OUT=$(mktemp -d /tmp/output.XXXXXXXXXX) || { echo "Failed to create temp dir"; exit 1; }
-mkdir $OUT/$PN
-cp -Rv OPSI CLIENT_DATA $OUT/$PN
-unix2dos $OUT/$PN/CLIENT_DATA/*
-
-	if [ -e /usr/portage/distfiles/$ICONFILE ]
-	then
-		if [ -e $ICONFILE.sha1sum ]
-		then
-			SHA1SUM=`cat $ICONFILE.sha1sum`
-			CHECKSUM=`sha1sum /usr/portage/distfiles/$ICONFILE`
-			if [ "$CHECKSUM" = "$SHA1SUM" ]
-			then
-				convert -colorspace rgb /usr/portage/distfiles/$ICONFILE -transparent white -background transparent -resize 160x160\> \
-					-size 160x160 xc:transparent +swap -gravity center -composite $OUT/$PN/CLIENT_DATA/$PN.png
-			else
-				echo "The checksums do not match."
-				exit 1
-			fi
-		else
-			echo "You need to create the checksums with: sha1sum /usr/portage/distfiles/$ICONFILE > $ICONFILE.sha1sum"
-			exit 1
-		fi
-	else
-		echo "Downloading file"
-		wget -P /usr/portage/distfiles/ $ICON
-		exit 1
-	fi
-
-	if [ -e /usr/portage/distfiles/$X86FILE ]
-	then
-		if [ -e $X86FILE.sha1sum ]
-		then
-			SHA1SUM=`cat $X86FILE.sha1sum`
-			CHECKSUM=`sha1sum /usr/portage/distfiles/$X86FILE`
-			if [ "$CHECKSUM" = "$SHA1SUM" ]
-			then
-				cp /usr/portage/distfiles/$X86FILE $OUT/$PN/CLIENT_DATA
-			else
-				echo "The checksums do not match."
-				exit 1
-			fi
-		else
-			echo "You need to create the checksums with: sha1sum /usr/portage/distfiles/$X86FILE > $X86FILE.sha1sum"
-			exit 1
-		fi
-	else
-		echo "Downloading file"
-		wget -O /usr/portage/distfiles/$X86FILE $X86
-		exit 1
-	fi
-
-#	if [ -e /usr/portage/distfiles/$AMD64FILE ]
-#	then
-#		if [ -e $AMD64FILE.sha1sum ]
-#		then
-#			SHA1SUM=`cat $AMD64FILE.sha1sum`
-#			CHECKSUM=`sha1sum /usr/portage/distfiles/$AMD64FILE`
-#			if [ "$CHECKSUM" = "$SHA1SUM" ]
-#			then
-#				cp /usr/portage/distfiles/$AMD64FILE $OUT/$PN/CLIENT_DATA
-#			else
-#				echo "The checksums do not match." 
-#				exit 1
-#			fi
-#		else
-#			echo "You need to create the checksums with: sha1sum /usr/portage/distfiles/$AMD64FILE > $AMD64FILE.sha1sum"
-#			exit 1
-#		fi
-#	else
-#		echo "Downloading file"
-#		wget -P /usr/portage/distfiles/ $AMD64
-#		exit 1
-#	fi
-
-sed -e "s!VERSION!$VERSION!g" -e "s!RELEASE!$RELEASE!g" -e "s!PRIORITY!$PRIORITY!g" -e "s!ADVICE!$ADVICE!g" -i $OUT/$PN/OPSI/control
-#sed -e "s!X86FILE!$X86FILE!g" -e "s!AMD64FILE!$AMD64FILE!g" -i $OUT/$PN/CLIENT_DATA/setup.ins
-sed -e "s!X86FILE!$X86FILE!g" -i $OUT/$PN/CLIENT_DATA/setup32.ins
-
-if test -d ".git"; then
-    git log --date-order --date=short | \
-    sed -e '/^commit.*$/d' | \
-    awk '/^Author/ {sub(/\\$/,""); getline t; print $0 t; next}; 1' | \
-    sed -e 's/^Author: //g' | \
-    sed -e 's/>Date:   \([0-9]*-[0-9]*-[0-9]*\)/>\t\1/g' | \
-    sed -e 's/^\(.*\) \(\)\t\(.*\)/\3    \1    \2/g' > $OUT/$PN/OPSI/changelog.txt
-else
-    echo "No git repository present."
-    exit 1
-fi
-
-pushd $OUT
-opsi-makeproductfile -v $OUT/$PN
-popd
-
-mkdir -p /var/tmp/opsi/upload/$TYPE/
-cp -afv $OUT/*.opsi /var/tmp/opsi/upload/$TYPE/
-
-#rm -rf $OUT
-
diff --git a/builder-product.cfg b/builder-product.cfg
new file mode 100644
index 0000000..555095d
--- /dev/null
+++ b/builder-product.cfg
@@ -0,0 +1,26 @@
+############################
+# Setup product information 
+############################
+VENDOR="piriform.com"
+PN="ccleaner"
+VERSION="3.15.1643"
+RELEASE="1"
+PRIORITY="0"
+ADVICE=""
+
+# TYPE - defines, if the install files are public or restricted. 
+# Valid value: restricted | public
+TYPE="public"
+
+  
+DL_FILE[0]="ccleaner_logo.png"
+DL_SOURCE[0]="http://2.bp.blogspot.com/_YrlyC1LOr5A/TAkgQE1KwaI/AAAAAAAAAFE/hQkRXFfScVw/s200/ccleaner.png"
+
+DL_FILE[1]="ccsetup-${VERSION}_slim.exe"
+DL_SOURCE[1]="http://www.piriform.com/ccleaner/download/slim/downloadfile"
+DL_ARCH[1]="X86"
+DL_WINST_NAME[1]=InstallExe
+
+# File array index for the image showing while installing the program
+ICON_DL_INDEX=0
+
diff --git a/builder-targets-cb.sh b/builder-targets-cb.sh
new file mode 100644
index 0000000..9a3d4a8
--- /dev/null
+++ b/builder-targets-cb.sh
@@ -0,0 +1,25 @@
+##############################################################################
+# This optional file "builder-targets-cb.sh" will be called by builder.sh 
+# 
+# The targets will be called from thde opsi-builder using the following
+# order: config, prepare, retrieve, create, package, publish, commit, cleanup 
+# You can overwrite the target functions in builder-targets-cb.sh
+# 
+# You can define callback functions. The functions are called from
+# opsi-builder within processing a target
+#   cb_package_makeproductfile
+#
+# You can use every variable defined in any configuration file or by
+# the defined builder script itself. Also, calling the predefined
+# targets builder_<targetname> is possible.
+#
+# Abstract:
+#  target order: config, prepare, retrieve, create, package, publish, commit, cleanup
+#  callbacks: <none>
+#
+##############################################################################
+
+function cleanup() {
+    echo "Cleanup"
+    builder_cleanup
+}
diff --git a/ccleaner-logo.png.sha1sum b/ccleaner-logo.png.sha1sum
deleted file mode 100644
index 60364e5..0000000
--- a/ccleaner-logo.png.sha1sum
+++ /dev/null
@@ -1 +0,0 @@
-e05e0e59a9491d346fedabde476b0aa524413c9f  /usr/portage/distfiles/ccleaner-logo.png
diff --git a/ccleaner_logo.png.sha1sum b/ccleaner_logo.png.sha1sum
new file mode 100644
index 0000000..be05b4b
--- /dev/null
+++ b/ccleaner_logo.png.sha1sum
@@ -0,0 +1 @@
+a6e3a80d985ea7ccab95803d73c6d41ec8a7cba4  /home/mario/.opsi-dist-cache/ccleaner-3.15.1643//ccleaner_logo.png
diff --git a/ccsetup-3.15.1643_slim.exe.sha1sum b/ccsetup-3.15.1643_slim.exe.sha1sum
new file mode 100644
index 0000000..4aa1878
--- /dev/null
+++ b/ccsetup-3.15.1643_slim.exe.sha1sum
@@ -0,0 +1 @@
+1e021afe1b7713c44e90bdfdb0fe308d3b821652  /home/mario/.opsi-dist-cache/ccleaner-3.15.1643/X86/ccsetup-3.15.1643_slim.exe
diff --git a/ccsetup3.14.1616_slim.exe.sha1sum b/ccsetup3.14.1616_slim.exe.sha1sum
deleted file mode 100644
index 78c9053..0000000
--- a/ccsetup3.14.1616_slim.exe.sha1sum
+++ /dev/null
@@ -1 +0,0 @@
-c9721cc8508f8bd206068684b3f1609e7ec6d15c  /usr/portage/distfiles/ccsetup3.14.1616_slim.exe