public boolean isTheSamePersonAs(Author externalAuthor)
    {
        //this method needs to log every time it assumes Person A is equal to
        //Person B when their details aren't exactly the same
        
        //we're taking a Best Guess approach with last name and first initial
        //and in the event that we're wrong, we need an audit trail of when the
        //assumption was made
        
        boolean equality = false;
        
        //make comparison        
        //same last name?
        if(externalAuthor.getLastName().equalsIgnoreCase(getLastName()))
        {
            if(externalAuthor.getFirstInitial().equalsIgnoreCase(getFirstInitial()))
            //same first initial?
            {
                equality = true;

                //do they have more information than this version of the author?
                if(getFirstName().equals("") && !externalAuthor.getFirstName().equals(""))
                {
                    //if they do, make this author more complete
                    setFirstName(externalAuthor.getFirstName());
                }
                
                if(getMiddleName().equals("") && !externalAuthor.getMiddleName().equals(""))
                {
                    //if they do, make this author more complete
                    setMiddleName(externalAuthor.getFirstName());
                }
                
                if(getMiddleInitial().equals("") && !externalAuthor.getMiddleInitial().equals(""))
                {
                    //if they do, make this author more complete
                    setMiddleInitial(externalAuthor.getFirstName());
                }
                
                compileFullName();
            }
        }
        
        return equality;
    }