@Override
  public void baseDirectory(String baseDirectory) throws IOException {
    super.baseDirectory(baseDirectory);
    if (baseDirectory != null) {
      try {
        ObjectInputStream ois = new ObjectInputStream(new BufferedInputStream(new FileInputStream(fileName())));
        list().clear();
        list().addAll((List) ois.readObject());
        ois.close();
        map.clear();
        for (T t : list)
          map.put(t, (char) map().size());
      } catch (ClassNotFoundException cnfe) {
        throw new IOException("Unable to load class", cnfe);
      } catch (FileNotFoundException ignored) {
        // ignored
      }
    }
  }