diff --git a/app.js b/app.js
index 58f929d74c8e568f46e805faeba79d147a10dacf..1c532cf24ad51712192450fed6aac309be839c0d 100644
--- a/app.js
+++ b/app.js
@@ -17,12 +17,12 @@
 	const downloadFiles = require('./downloadFiles.json');
 	const downloadNames = Object.keys(downloadFiles);
 
-	let app = express();
+  var app = express();
 
-	app.use(bodyParser.urlencoded({
-		extended: true
-	}));
-	app.use(bodyParser.json());
+  app.use(bodyParser.urlencoded({
+    extended: true
+  }));
+  app.use(bodyParser.json());
 
 	//set handlebars as view engine
 	app.engine('.hbs', exphbs({extname: '.hbs'}));
@@ -88,7 +88,7 @@
 
 		function backendClean(){
 			return new Promise((resolve,reject)=>{
-				exec('cd explorviz-ui-backend/plugins/net/explorviz/plugins/ && rm *', (error, stdout,stderr)=>{
+				exec('cd explorviz-ui-backend/plugins/net/explorviz/ && rm -rf plugins/*', (error, stdout,stderr)=>{
 					if (error) {
 						reject(error);
 						return;
@@ -107,7 +107,7 @@
 
 			return new Promise((resolve, reject)=> {
 
-				exec('cd ' + fileName + 'git pull ', (error, stdout, stderr) => {
+				exec('cd ' + fileName + ' git pull ', (error, stdout, stderr) => {
 
 					if (error) {
 						reject(error);
@@ -133,7 +133,7 @@
 				if(checkedPlugins.length !== 0 ){
 
 					checkedPlugins.forEach((pluginName) => {
-						exec('git clone ' + downloadFiles[pluginName] + 'cd ' + pluginName + 'cp -r . explorviz-ui-backend/plugins/net/explorviz/plugins/', (error, stdout, stderr) => { //'cd explorviz-ui-backend/plugins/net/explorviz/plugins/ ' + 
+						exec('git clone ' + downloadFiles[pluginName] + ' && cp -R '+ pluginName + '/ '+' explorviz-ui-backend/plugins/net/explorviz/plugins/', (error, stdout, stderr) => { //'cd explorviz-ui-backend/plugins/net/explorviz/plugins/ ' + 
 							
 							if (error) {
 								reject(error);
@@ -179,7 +179,6 @@
 
 		function backendAll(){
 			return backendClean().then(function(){
-
 				return backendPull().then(function(){
 					return backendInstallAddons().then(function(){
 						return backendBuild()
@@ -231,7 +230,7 @@
 				if(checkedPlugins.length !== 0 ){
 
 					checkedPlugins.forEach((pluginName) => {
-						exec('cd ' + 'explorviz-ui-frontend ' + 'ember install ' + downloadFiles[pluginName], (error, stdout, stderr) => {
+						exec('cd ' + ' explorviz-ui-frontend ' + ' ember install ' + downloadFiles[pluginName], (error, stdout, stderr) => {
 							
 							if (error) {
 								reject(error);
@@ -275,16 +274,17 @@
 
 
 			})
-		}
+      console.log('resolve build:', resolve);
+    }
 
-		function frontendAll() {
+    function frontendAll() {
 
-			return frontendPull().then(function(){
-				return frontendInstallAddons().then(function(){
-					return frontendBuild()
-				})
-			})
-		}
+     return frontendPull().then(function(){
+      return frontendInstallAddons().then(function(){
+       return frontendBuild()
+     })
+    })
+   }
 //frontend was selected and the next step (streaming to zip) has to wait until the frontend is built
 promiseArray.push(frontendAll());
 finalizeZip();
@@ -316,44 +316,53 @@ function streamFilesToZip(){
 			let finishedArray=[];
 			files.forEach(file => {
 				if (file.zipFileName === 'backend.war'){
-					const backendSteam = fsReaddir(file.path).on('data', function(data){
-						const backendReadStream = fs.createReadStream(data);
-						zip.file(zipFileName, backendReadStream);
-					}).on('error', function(){
-						console.log('error:', error);
-					}).on('finish', function(){
-						finishedArray.push('backend finished');
-						if(finishedArray.length === files.length){
-							resolve();
-						}
-					})
-
-						// backendStream = fs.createReadStream(file.path);
-						// zip.file(file.zipFileName, backendStream);
-						// finishedArray.push('backend done');
-					}
-					if(file.zipFileName === 'frontend'){
-						const frontendStream = fsReaddir(file.path)
-						.on('error', function(err) {
-							console.log('error:', err);
-						}).on('data', function(data){
-							for (let i=0; i<data.length; i++) {
-								const frontendReadsStream = fs.createReadStream(data[i]);
-								zip.file(data[i], frontendReadStream);
-							}
-
-						}).on('finish', function(){
-							finishedArray.push('frontend finished');
-							if(finishedArray.length === files.length){
-								resolve();
-							}
-						})
-
-					}
-
-					
-
-				})
+// console.log('backendStream:');
+//              backendStream = fs.createReadStream(file.path);
+//              console.log('zip.file:');
+//             zip.file(file.zipFileName, backendStream);
+//             console.log('backend done:');
+// finishedArray.push('backend done');
+const backendStream = fs.readFileSync(file.path, "base64", function(error, data){
+  if(error){
+    console.log('error:', error)
+  }
+});
+          //console.log('backendStream:', backendStream);
+          const backendReadStream = fs.createReadStream(backendStream);
+          
+          zip.file(file.zipFileName, backendReadStream);
+          finishedArray.push('backend finished');
+          if(finishedArray.length === files.length){
+           resolve();
+         }
+         
+
+
+         
+       }
+       if(file.zipFileName === 'frontend'){
+        const frontendStream = fsReaddir(file.path)
+        .on('error', function(err) {
+         console.log('error:', err);
+       }).on('data', function(data){
+         for (let i=0; i<data.length; i++) {
+          const frontendReadStream = fs.createReadStream(data[i]);
+          console.log('data[i]:', data[i]);
+          zip.file(data[i], frontendReadStream);
+        }
+
+      }).on('finish', function(){
+       finishedArray.push('frontend finished');
+       if(finishedArray.length === files.length){
+        resolve();
+      }
+    })
+
+    }
+
+    
+
+  })
 
 		})
 
@@ -365,12 +374,14 @@ function createZip(){
 	console.log('in createZip');
 
 	return new Promise((resolve,reject) => {
-		zip.generateNodeStream({type:'nodebuffer',streamFiles:true}).pipe(fs.createWriteStream('explorviz-builds.zip')).on('finish', function () {
-			console.log('explorviz-builds.zip written.');
-			res.download('explorviz-builds.zip');
-		}); 
-		
-	})
+		zip.generateNodeStream({type:'nodebuffer',streamFiles:true}).pipe(fs.createWriteStream('explorviz-builds.zip')).on('error', function(error){
+      console.log('error in createZip:', error);
+    }).on('finish', function () {
+     console.log('explorviz-builds.zip written.');
+     res.download('explorviz-builds.zip');
+   }); 
+    
+  })
 
 	
 }