public static String generateLine(String lastWord, int desiredLetterCount) {
		if(lyricMap == null) {
			throw new NullPointerException("You forgot to set RCLineGenerator's lyric map");
		}
		
		String result = lastWord;	
		
		while(lyricMap.hasPreviousWord(lastWord)) {
			String newWord = lyricMap.getRandomPreviousWord(lastWord);
			if(newWord.replaceAll("\\p{Punct}", "").toLowerCase().equals("i") || newWord.toLowerCase().startsWith("i'"))
				newWord = "I" + newWord.substring(1);
			
			
			String tempWord = newWord + " " + result;
			
			if(countLetter(tempWord) < desiredLetterCount){
				result = tempWord;
			}
			else{
				if(Math.abs(countLetter(tempWord) - desiredLetterCount) < Math.abs(countLetter(result) - desiredLetterCount))
					result = tempWord;
				break;
			}
	
			lastWord = newWord;
		}
		
		
		return result.substring(0,1).toUpperCase() + result.substring(1);
	}