public void run() {
    	
    	//init for word
		kickstartWord();		
		
		while (true) {
			
			hangmanCanvas.displayWord(charArrToString(maskedWord));
			
			for (int i = 0; i < maskedWord.length; i++) {
				print(maskedWord[i]);
			}
			println();
			print("Enter letter: ");
			String userInput = readLine();
			
			char userGuess;
			try {
				userGuess = Character.toUpperCase(userInput.charAt(0)); //takes 1st char
			} catch (IndexOutOfBoundsException e) { //user send empty string
				println("Don't send empty string. Enter something!");
				continue;
			}
			
			if (listOfFoundChars.contains(userGuess)) {
				println("You already found this letter. Try another one.");
				continue;
			}
			
			boolean foundMarker = false;
			for (int i = 0; i < charsOfTheWord.length; i++) {
				if (userGuess == charsOfTheWord[i]) {
					listOfFoundChars.add(userGuess);
					maskedWord[i] = userGuess;
					foundMarker = true;
				}
			}//for
			
			if (!foundMarker) {
				hangmanCanvas.noteIncorrectGuess(userGuess);
				mistakesCount++;
			} 
			
			if (listOfFoundChars.size() == charsOfTheWord.length) { //win
				println("GRATS! You did it!");
				println("Lets do it again.");
				hangmanCanvas.reset();
				kickstartWord();
			}
			
			if (mistakesCount >= NMAX_MISTAKES) { //loss
				println("You have lost the game.");
				println("Lets try again.");
				hangmanCanvas.reset();
				kickstartWord();
				
			}
			
		} //while
		
		
		
		
	}