private String [] parseCSV (String line) {
        
        ArrayList  <String> tempList= new ArrayList <> ();
        StringBuilder temp = new StringBuilder ();
        boolean stringFlag = false;
        for (int i = 0; i < line.length (); i++) {
            if (line.charAt(i) == '\"') {
                if (stringFlag == false) {         //starting a string literal
                    stringFlag = true;             
                } else {                           //ending a string literal
                    stringFlag = false;
                    if (temp.length() > 0) {       //anything between the quotes
                        tempList.add (temp.toString());
                        temp.delete(0, temp.length ());
                    }
                }
                continue;
            }
            if (line.charAt (i) == GenUtil.COMMA.charAt(0) && 
                stringFlag != true) {               //end a field, comma not in a string literal
                if (temp.length() > 0) {            //anything between the commas
                    tempList.add (temp.toString());
                    temp.delete(0, temp.length ());
                } 
                continue;
            }
            temp.append (line.charAt (i));
        }
        if (temp.length() > 0) {                    //leftover field
            tempList.add (temp.toString());
            temp.delete(0, temp.length ());
        } 

        return tempList.toArray(new String [tempList.size ()]);
    }