@SuppressWarnings("rawtypes")
	public static synchronized Trie constructTrieFromFile(String path,
			String delimiter) throws IOException {
		BufferedReader br = new BufferedReader(FileReaderFacade.readFile(path));
		String line = null;
		Trie<Character, String> trie = new Trie<Character, String>();
		List<Character> elements = new ArrayList<Character>();
		while ((line = br.readLine()) != null) {
			String[] words = line.split(delimiter);
			for (String w : words) {
				/**
				 * here should replace regular expression to make it support more language like Chinese.
				 */
				if (w.trim().matches("[a-zA-Z]*")) {
					for (char c : w.toCharArray()) {
						elements.add(Character.valueOf(c));
					}
					trie.add(elements, w);
					elements.clear();
				}
			}

		}
		return trie;
	}