private static NumberAgreement determineNumber(NLGElement parent,
			PhraseElement phrase) {
		Object numberValue = phrase.getFeature(Feature.NUMBER);
		NumberAgreement number = null;
		if (numberValue != null && numberValue instanceof NumberAgreement) {
			number = (NumberAgreement) numberValue;
		} else {
			number = NumberAgreement.SINGULAR;
		}

		// Ehud Reiter = modified below to force number from VP for WHAT_SUBJECT
		// and WHO_SUBJECT interrogatuves
		if (parent instanceof PhraseElement) {
			if (parent.isA(PhraseCategory.CLAUSE)
					&& (PhraseHelper.isExpletiveSubject((PhraseElement) parent)
							|| InterrogativeType.WHO_SUBJECT.equals(parent
									.getFeature(Feature.INTERROGATIVE_TYPE)) || InterrogativeType.WHAT_SUBJECT
							.equals(parent
									.getFeature(Feature.INTERROGATIVE_TYPE)))
					&& isCopular(phrase.getHead())) {

				if (hasPluralComplement(phrase
						.getFeatureAsElementList(InternalFeature.COMPLEMENTS))) {
					number = NumberAgreement.PLURAL;
				} else {
					number = NumberAgreement.SINGULAR;
				}
			}
		}
		return number;
	}