code: public synchronized void load(LCMSDataSubset subset, Object user) throws FileParsingException {
      if (user == null) {
        throw new IllegalArgumentException("User can't be null");
      }
      // load data, if it's not there yet
      if (!isLoaded(subset)) {
        scans.loadData(subset, null);
      }
  
      // add the subset
      Set<LCMSDataSubset> userSubsets = cache.getIfPresent(user);
      if (userSubsets == null) {
        addNewUser(user);
        userSubsets = new HashSet<>(2);
        userSubsets.add(subset);
        cache.put(user, userSubsets);
      } else {
        userSubsets.add(subset);
      }
    }
docs: Will load scan meta-info and spectra for the specified subset. Will also keep track of loaded
  subsets. If a subset is loaded, then it is considered to be in use by some component until it
  doesn't explicitly call {@link #unload(umich.ms.datatypes.LCMSDataSubset) }.
  
  @param user identify yourself somehow, other components might be using this LCMSData as well,
  so if you don't provide that identifier, there is no way to tell, for example, when unloading a
  subset if it's in use by you or someone else. So some other component, might call unload() and
  without the identifier your spectra will be lost.