private static void uninstallIntegrityClient() {
    	// UNINSTALL OLD CLIENT
    	Timestamp start, stop;
		try {
	    	start = new Timestamp(new java.util.Date().getTime());
	    	System.out.println("[" + start + "] Uninstalling old Integrity Client...");
	    	
	    	String oldClientDir = config.getString(PROPERTY_OLD_CLIENT_DIR) + File.separator + "uninstall" + File.separator + "IntegrityClientUninstall.exe";
	    	String pathToProcess = oldClientDir;
			File f = new File(pathToProcess);
			if (!f.exists()){
				log.error(f.getAbsolutePath() + " doesn't exist, uninstall abort");
			}
			
			if (oldClientDir.contains("\\")) {
				oldClientDir = f.getName();
			}
			
		    int numberOfProcesses = WindowsUtils.numberOfRunningProcesses(oldClientDir);
		    if (numberOfProcesses > 0 ) {
		    	if (numberOfProcesses == 1){
		    		log.warn("find already running process "+ oldClientDir + " process will be terminated");
		    	} else {
		       		log.warn("find already running "+numberOfProcesses+" \""+ oldClientDir + "\" processes, all of them will be terminated");
		    	}
		       	WindowsUtils.killProcess(oldClientDir);
		    }    		
		    WindowsUtils.startProcess(pathToProcess, "-i silent", processWorkTimeLimit , processCheckInterval);
	    	stop = new Timestamp(new java.util.Date().getTime());
			if (WindowsUtils.checkExitCode() == 0){
				String message = "[" + stop + "] Old Integrity Client was successful uninstalled. Time duration: " +Utils.timeDuration(start);
				WindowsUtils.deleteFolder(new File(config.getString(PROPERTY_OLD_CLIENT_DIR)));
				System.out.println(message);
				log.info(message);
				
			}else {
				String message = "[" + stop + "] Error occurred while uninstalling Integrity Client. Time duration: " +Utils.timeDuration(start);
				System.out.println(message);
				log.error(message);
				abortApp(); //TODO uncomment
			}
		} catch (IOException e) {
			log.error(e);
			log.error("Please check if \""+PROPERTY_OLD_CLIENT_DIR+"\" property is properly set and points to OLD IntegrityClient dir");
		}
		
		File oldClientDir = new File(config.getString(PROPERTY_OLD_CLIENT_DIR));
		if (oldClientDir!= null && oldClientDir.isDirectory()) {
			if (WindowsUtils.deleteFolder(oldClientDir)) {
				log.info("Old client directory ["+oldClientDir.getAbsolutePath()+"] was removed");
			} else {
				log.warn("Cannot delete Old Client directory ["+oldClientDir.getAbsolutePath()+"]" );
			}
		}
    }