static EsiConfig loadEsiConfig(final String configFilePath) throws IOException, ParseException {
		JSONParser parser = new JSONParser();
		final JSONObject configObj = (JSONObject) parser.parse(new FileReader(configFilePath));
		Map<String, PageLetConfig> esiTemplateURLMap = new HashMap<String, PageLetConfig>();
		Map<String, PageLetConfig> wildCardURLMap = new HashMap<String, PageLetConfig>();
		LBType lbType = LBType.random;
		if(configObj.containsKey("lb_type")){
			lbType = LBType.valueOf( (String) configObj.get("lb_type") );
		}

		long defaultTTL = DEFAULT_TTL;
		if(configObj.containsKey("ttl")){
			defaultTTL = (long) configObj.get("ttl");
		}

		JSONArray defaultServers = (JSONArray) configObj.get("servers");
		Set<String> defaultServerSet = new HashSet<>();
		for(Object server: defaultServers){
			defaultServerSet.add((String)server);
		}

		//		PageLetConfig defaultPageLetConfig = new PageLetConfig(defaultServerSet, defaultTTL, "/*");
		//		esiTemplateURLMap.put("/*", defaultPageLetConfig);

		JSONObject urlMap = (JSONObject) configObj.get("url_map");

		@SuppressWarnings("unchecked")
		Set<String> keySet = urlMap.keySet();
		for(String key: keySet ){
			long ttl = defaultTTL;
			String URI = key;
			JSONObject urlMapObj = (JSONObject) urlMap.get(key);
			Set<String> ecServers= new HashSet<>();
			if( urlMapObj.containsKey("servers") ){
				JSONArray ecServerArray = (JSONArray) urlMapObj.get("servers");
				for(Object server: ecServerArray){
					ecServers.add((String)server);
				}
			}else{
				ecServers = defaultServerSet;
			}

			if(urlMapObj.containsKey("ttl")){
				ttl = (long) urlMapObj.get("ttl");
			}

			if(urlMapObj.containsKey("uri")){
				URI = (String) urlMapObj.get("uri");
				if(URI.contains("*")){
					PageLetConfig wildCardConfig = new PageLetConfig(defaultServerSet, defaultTTL, URI);
					wildCardURLMap.put(key, wildCardConfig);
				}
				else{
					PageLetConfig pageLetConfig = new PageLetConfig(ecServers, ttl, URI);
					esiTemplateURLMap.put(key, pageLetConfig);
				}
			}
		}
		return new EsiConfig(esiTemplateURLMap, wildCardURLMap, lbType);
	}