@Override
	/**
	 * The functions determines whether a word is in the Trie.
	 *
	 * @param  obj The only way this will return a true is if the object passed in
	 * is a String and this Trie contains that String.
	 */
	public boolean contains( Object obj) {
		if(!(obj instanceof String)){
			return false;
		}
		String word = (String)obj;
		if (word.length() == 0) {
			return false;
		}

		String[] letterArray = word.split("(?!^)");
		TrieNodeAbstract currentNode = this.root;
		int totalLetters = word.length();
		int currentPostion = 1;

		for (String currentLetter : letterArray) {

			boolean isLastLetter = (currentPostion == totalLetters) ? true : false;

			//Is the letter we are looking for one of the path we can take.
			if (!currentNode.contains(currentLetter)) {
				return false;
			} else {
				//It was there so retrieve it and see if it was 
				//the end of our search.
				currentNode = (TrieNodeAbstract)currentNode.getNodeAt(currentLetter);
				if (isLastLetter) {
					return currentNode.isEndOfWord();
				}
			}
			currentPostion++;

		}
		return false;
	}