code: public Pair<List<Group>> getCoreResidues(double bsaToAsaCutoff, double minAsaForSurface) {
  
  		List<Group> core1 = new ArrayList<Group>();
  		List<Group> core2 = new ArrayList<Group>();
  
  		for (GroupAsa groupAsa:groupAsas1.values()) {
  
  			if (groupAsa.getAsaU()>minAsaForSurface && groupAsa.getBsa()>0) {
  				if (groupAsa.getBsaToAsaRatio()<bsaToAsaCutoff) {
  					//rim1.add(groupAsa.getGroup());
  				} else {
  					core1.add(groupAsa.getGroup());
  				}
  			}
  		}
  		for (GroupAsa groupAsa:groupAsas2.values()) {
  
  			if (groupAsa.getAsaU()>minAsaForSurface && groupAsa.getBsa()>0) {
  				if (groupAsa.getBsaToAsaRatio()<bsaToAsaCutoff) {
  					//rim2.add(groupAsa.getGroup());
  				} else {
  					core2.add(groupAsa.getGroup());
  				}
  			}
  		}
  
  		return new Pair<List<Group>>(core1, core2);
  	}
docs: Returns the residues belonging to the interface core, defined as those residues at
  the interface (BSA>0) and for which the BSA/ASA ratio is above the given bsaToAsaCutoff
  @param bsaToAsaCutoff
  @param minAsaForSurface the minimum ASA to consider a residue on the surface
  @return