@Override
	public boolean executeValidation(CreditCard creditCard) {
		log.fine("Starting credit card validation");

		boolean isValid = true;
		isValid = validateCardNumber(creditCard.getCardNumber()) && isValid;

		// Only check the type if the number was valid, since the type depends
		// on it
		if (isValid) {
			isValid = validateCardType(creditCard.getCardNumber(),
					creditCard.getCardType())
					&& isValid;
		}

		isValid = validateExpirationDate(creditCard.getValidUntilMonth(),
				creditCard.getValidUntilYear()) && isValid;
		return isValid;
	}