private void removeUnreferencedItems() {
		// -------------------------------------------------
		// aMembers
		// -------------------------------------------------
		for (Iterator<MethodOrField> it = aMembers.iterator(); it.hasNext();) {			
			MethodOrField next = it.next();
			if (!next.isReferenced()) {
				it.remove();
			}
		}

		// -------------------------------------------------
		// aMemberReferences
		// -------------------------------------------------
		for (Iterator<MemberReference> it = aMemberReferences.iterator(); it.hasNext();) {
			MemberReference next = it.next();
			if (!next.isReferenced()) {
				it.remove();
			}
		}

		// -------------------------------------------------
		// aXXXConstantReferences
		// -------------------------------------------------
		removeUnreferencedConstantReferences(aIntegerConstantReferences);
		removeUnreferencedConstantReferences(aFloatConstantReferences);
		removeUnreferencedConstantReferences(aDoubleConstantReferences);
		removeUnreferencedConstantReferences(aStringConstantReferences);
		removeUnreferencedConstantReferences(aLongConstantReferences);

		// -------------------------------------------------
		// aClasses
		// -------------------------------------------------
		for (Iterator<String> it = aClasses.keySet().iterator(); it.hasNext();) {
			ClassInSuite next = aClasses.get(it.next());
			if (!next.isReferenced()) {
				it.remove();
			}
		}

		// -------------------------------------------------
		// aClassReferences
		// -------------------------------------------------
		for (Iterator<ClassReference> it = aClassReferences.iterator(); it.hasNext();) {
			ClassReference next = it.next();
			if (!next.isReferenced()) {
				it.remove();
			}
		}
	}