public static Properties get(String filePath) {
		if (! filePath.endsWith(".properties")) {
			filePath += ".properties";
		}
		
		if (propertiesMap.containsKey(filePath)) { // Check if the file is cached.
			// If so, return the cached version of the file.
			return propertiesMap.get(filePath);
		} else {
			try {
				InputStream input = new FileInputStream(filePath); // Open the requested file
				Properties properties = new Properties(); // Create a new Properties object.
				properties.load(input); // Populate the properties object with the input file.
				input.close(); // Close the requested file.
				
				propertiesMap.put(filePath, properties); // Cache the file, so that it can be quickly loaded in the future.
				
				return properties; // Return our new properties object.
			} catch (FileNotFoundException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		
		return null; // If the try/catch block fails, then return null. The properties could not be loaded.
	}