void finalizeGroupBuild() {
		// run this loop in increasing order so that the
		// groups get defined going up
		groups = new Group[groupCount];
		for (int i = 0; i < groupCount; ++i) {
			distinguishAndPropagateGroup(i, chains[i], group3s[i], seqcodes[i], firstAtomIndexes[i],
					(i == groupCount - 1 ? atomCount : firstAtomIndexes[i + 1]));
			chains[i] = null;
			group3s[i] = null;
		}
		chains = null;
		group3s = null;
	}