public Instance(String[] args) throws FatalError, IOException {

		// configure plans
		PlanBoeseBeute.initiate();
		PlanBoeseKrieg.initiate();
		PlanBoeseRespekt.initiate();
		PlanAngriff.initiate();

		// reset config
		new Config();

		// reset user
		new User();

		this.parseArguments(args);

		if (this.modus.equals(Modus.help)) {
			Output.help();
		}

		// read config file
		try {
			File f = new File(Config.getConfigFile());
			FileInputStream fstream = new FileInputStream(f.getAbsoluteFile());
			DataInputStream in = new DataInputStream(fstream);
			BufferedReader br = new BufferedReader(new InputStreamReader(in));

			String strLine, configString = "";

			// Read File Line By Line
			while ((strLine = br.readLine()) != null) {

				// Kommentare werden ausgelassen
				if (strLine.length() > 0 && strLine.substring(0, 1).equals("#")) {
					configString += "\n";
					continue;
				}
				configString += strLine + "\n";
			}

			// Close the input stream
			in.close();

			try {
				JSONObject config = new JSONObject(
						new JSONTokener(configString));
				Config.parseJsonConfig(config);
			} catch (JSONException e) {
				int lines = configString.substring(0, e.getIndex()).replaceAll("[^\n]", "").length();
				throw new FatalError("Die Struktur der Konfigurationsdatei "
						+ "stimmt nicht. Versuche den Inhalt der "
						+ "Datei mit einem externen Werkzeug zu "
						+ "reparieren. Dafür gibt es Webseiten, "
						+ "die JSON-Objekte validieren können. Vermutlich in der Zeile " + lines + "."
						+ "\n\nAls Hinweis hier noch die Fehlerausgabe:\n"
						+ e.getMessage() + "\n\nEingabe war:\n"
						+ e.getInputString());
			}
		} catch (FileNotFoundException e) {
			throw new FatalError(
					"Die Konfigurationsdatei konnte nicht gefunden/geöffnet werden.\n Datei: "
							+ Config.getConfigFile() + "\n Fehler: "
							+ e.getMessage());
		}

		if (Config.getUserName() == null || Config.getUserPassword() == null
				|| Config.getHost() == null) {
			throw new FatalError(
					"Die Konfigurationsdatei ist nicht vollständig. "
							+ "Es wird mindestens der Benutzername, das "
							+ "Passwort und der Hostname benötigt.");
		}

	}