@SuppressWarnings("unchecked")
	private boolean loadKotHMatches(){
		
		//Creates an instance of the file location to save the objects
		File f = new File(this.getDataFolder()+ File.separator + "Matches.dat");
		
		//If the file does not exist, then we cannont read the file, so return false
		if (!f.exists())return false;
		
		//Declare FileInputStream and ObjectInputStream objects
		FileInputStream fis;
		ObjectInputStream ois;
		
		
		try {
			//Intiate the FileInputStream 
			fis = new FileInputStream(f);
			
			//Initiate the ObjectOutputStream using the inputstream as a parameter
			ois = new ObjectInputStream(fis);
			
			//Read the object from the stream and store it in an Object 'o'
			Object o = ois.readObject();
		
			//Close the object output stream
			ois.close();
			
			//If the object is an instance of an ArrayList, cast it to an ArrayList<KotH>
			//else return false (An error occured in the reading)
			if (o instanceof ArrayList<?>){
				kothMatchList = (ArrayList<KotHMatch>) o;
			} else {
				return false;
			}
			
		} catch (FileNotFoundException e) {
			e.printStackTrace();
			return false;
		} catch (IOException e) {
			e.printStackTrace();
			return false;
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		//If the cast was unsucessfull, return false (An error occured)
		if (kothMatchList == null) return false;
		
		//Loop through the match list and deserialize (Re-initiate the transient variables) the KotHMatch objects
		for(KotHMatch match : this.kothMatchList){
			match.deserialize(this);
		}
		//Finally return true to show that there was success in the deserialization of the file
		return true;
	}