public void run() {
		boolean check;

		check = false;
		while (!check) {
			// query database access
			requestDatabaseInfo();

			// create database object
			// db = new MySQLClientWrapper(console);
			db = new MySQLJDBCConnection(console);

			// open database
			check = db.open(sqlhostname, sqlport, sqldatabase, sqlusername,
					sqlpassword);

			if (!check) {
				console.printf("Failed to connect to the database!\n");
			}
		}

		check = false;
		while (!check) {

			// query updates path
			requestUpdatesPath();

			// Collect all updates
			collectUpdates();
			check = updates.size() != 0;
			if (!check) {
				console.printf("No updates found! Please use a different location.\n");
			}
		}

		// query for update range
		requestUpdateRange();

		// Print Summary
		printSelectedUpdates();

		// last chance
		check = requestConfirmation("This is your Last chance to abort!");
		if (!check) {
			console.printf("Canceled!\n");
			return;
		}

		check = applySelectedUpdates();
		if (!check) {
			console.printf("Finished with errors!\n");
		} else {
			console.printf("Finished!\n");
		}

		// close database
		db.close();
	}