public void loadDict(String fileName) {

		if(fileName == null || "".equals(fileName)) {
			return;
		}
		if(wordList == null) {
			wordList = new ArrayList<String>();
		}
		// clear existing elements
		wordList.clear();

		String line;
		String word;
		try {
			BufferedReader br = null;
			InputStream is = getClass().getResourceAsStream(fileName);
			if(is == null) {
				// another chance to load from file reader
				br = new BufferedReader(new FileReader(fileName));
			} else {
				br = new BufferedReader(new InputStreamReader(is));
			}
			
			while ((line = br.readLine()) != null) {
				word = line.replaceAll("[\\W]|_", "").toUpperCase();
				wordList.add(word);
			}
			// System.out.println("Dictionary ["+ fileName + "] loaded successfully!");

		} catch (IOException e) {
			System.out.println("Dictionary loading failed! " + e.getMessage());
			e.printStackTrace();
		}

		syncDictFromList();
	}