public void load(String[] filenames) {
        String line, stroke, english;
        String[] fields;
        boolean simple= (filenames.length<=1);
        TST<String> forwardLookup = new TST<String>();
        for (String filename : filenames) {
            if (validateFilename(filename)) {
                try {
                    File file = new File(filename);
                    FileReader reader = new FileReader(file);
                    BufferedReader lines = new BufferedReader(reader);
                    while ((line = lines.readLine()) != null) {
                        fields = line.split("\"");
                        if ((fields.length > 3) && (fields[3].length() > 0)) {
                            stroke = fields[1];
                            english = fields[3];
                            if (simple) {
                                addToDictionary(stroke, english);
                            } else {
                                forwardLookup.put(stroke, english, false);
                            }
                        }
                    }
                    lines.close();
                    reader.close();
                } catch (IOException e) {
                    System.err.println("com.brentandjody.BriefTrainer.Dictionary File: " + filename + " could not be found");
                }
            }
        }
        if (!simple) {
            // Build reverse lookup
            for (String s : forwardLookup.keys()) {
                english = forwardLookup.get(s, false);
                addToDictionary(s, english);
            }
        }
    }