public boolean addFile( String fileName ) {
        
        /** Holds the scanned file. */ 
        Scanner scanFile = null;
        /** Holds the current line in the file */ 
        Scanner scanLine = null;
        /** Holds current word being read in. */
        String currentWord;
        /** Holds the a collection of words on the currentLine */
        HashSet<String> wordsInLine = new HashSet<String>();
        /** The current line number */
        int lineNumber = 1;
        
       /*
        * OPEN THE FILE
        */
        
        // attempt to open the file... if the file is not found, return false & exist the method
        try {    
            scanFile = new Scanner( new File( fileName ) );
        } 
        catch ( FileNotFoundException e ) {
            
            // exit the method
            return false;
        }
        
        // read in lines from the file
        while( scanFile.hasNextLine() ) {

            scanLine = new Scanner( scanFile.nextLine() );
           
            // put words on current line into a temporary hashset            
            while( scanLine.hasNext() ) {    
                currentWord = fixText( scanLine.next() );
                wordsInLine.add( currentWord );
            }

            // add words to the hashmap
            while( ! wordsInLine.isEmpty() ) {
                
                // get the next word & then delete it
                currentWord = wordsInLine.iterator().next();
                wordsInLine.remove( currentWord );
                
                // check to see if the words hashmap contains the current word
                // - if so, check to see if the the current word contains the current file
                // - if the current file does not exist, create a new entry 
                if( wordsHashMap.containsKey( currentWord ) ) {
                    if( wordsHashMap.get( currentWord ).containsKey( fileName ) ) {
                        
                        // if the filename exists, do not create another entry:
                        // simply add the line number to the line number hashset... if that line number 
                        // for the that file already exists, another copy will not be created
                        wordsHashMap.get( currentWord ).get( fileName ).add( lineNumber );
                    }
                    else {
                        
                        // add the filename and a new hashset of line numbers & then add the line number to the file name
                        wordsHashMap.get( currentWord ).put( fileName, new HashSet<Integer>() );
                        wordsHashMap.get( currentWord ).get( fileName ).add( lineNumber );
                    }
                }
                // the current word does not exist so create a new entry for the word, a new entry for
                // the current file name, and add the current line number
                else {
                    wordsHashMap.put( currentWord, new HashMap<String, HashSet<Integer>>() );
                    wordsHashMap.get( currentWord ).put( fileName, new HashSet<Integer>() );
                    wordsHashMap.get( currentWord ).get( fileName ).add( lineNumber );
                }
            } // end while( ! wordsInLine.isEmpty() ) )
            
            // clear the set
            wordsInLine.clear();
            
            // increase the line number
            lineNumber++;
            
        } // end while( scanFile.hasNextLine() )
        
        // add the file to the list of files that have been parsed
        filesParsed.add( fileName );
        
        // the file was read in, the words were parsed & stored, and the file added to the parsed list
        return true;
        
    } // end addFileToIndex( String fileName )