public static void main (String[] args) throws IOException, InterruptedException 
	{
		//Check Internet 
		try {
			IP = Checkip.getextIp();
			internet_access = true;
		} catch (Exception ex) {
			internet_access = false;
		}
		
		//Setup internet variables use this format to save API key uses
		try {
			if (internet_access == true && Checkip.ip_changed() == true) 
			{
				Properties_Utils.set_prop("IP", IP);
				place = Checkip.geoLocate();
				Properties_Utils.set_prop("place", place);
				place_found = true;
				
			}
			
			if (internet_access == true)
			{
			//Get motd
			motd = Readfromserver.motd();
			
			//Echo motd (Debugging only)
			System.out.println("MOTD - " + motd);
			Utils.speak("The message of the day is: " + motd);
			}
		} catch (Exception e) {
			internet_error = true;
		}
		

		
		if (place == null) {
			place = Checkip.geoLocate();
			place_found = true;
		}
		
		//Start language parser
		Natural_Parser.set_verb_list();
		
		
		
		//Check if System is installed properly.
		if (config_file.exists()) {
			installed = true;
			Boolean method_check = Properties_Utils.init();
			if (method_check == true) {
				config_loaded = true;
			} else {
				config_loaded = false;
			}
		} else {
			installed = false;
			Boolean method_check = Properties_Utils.create_file();
			if (method_check == true) {
				config_written = true;
			} else {
				config_written = false;
			}
		}
																																																																					
		//Debug installed and configuration variables here:
		//installed = false;
		
		if (installed == null) {
			//Throw Configuration error.
			error("config_startup");
		}
		
		if (installed == false) {
			Procedure.install();
			installed = true;
		}
		
		if (installed == true) {
			Procedure.welcome();
			proc_mode = true;
			AI_Proc ();
		}
	
	}