public DriveEquation(Object id, Collection<Dimension> InputSpace, AbstractOutputChunkCollection<? extends AbstractOutputChunk> Outputs) 
	throws InvalidFormatException{
		super(InputSpace, Outputs);
		ID = id;
		if(!InputAsCollection.containsKey(ID))
			throw new InvalidFormatException ("The input space MUST contain a dimension with the ID specified.");
		Value s = InputAsCollection.get(ID).get(Drive.TypicalInputs.STIMULUS);
		Value sgain = InputAsCollection.get(ID).get(Drive.TypicalInputs.SYSTEM_GAIN);
		Value dgain = InputAsCollection.get(ID).get(Drive.TypicalInputs.DRIVE_GAIN);
		Value ugain = InputAsCollection.get(ID).get(Drive.TypicalInputs.UNIVERSAL_GAIN);
		Value d = InputAsCollection.get(ID).get(Drive.TypicalInputs.DEFICIT);
		Value b = InputAsCollection.get(ID).get(Drive.TypicalInputs.BASELINE);
		if(s == null || sgain == null || dgain == null || ugain == null || d == null || b == null)
			throw new InvalidFormatException ("The input space contains a dimension with the specified ID. "+
					"HOWEVER, that dimension does not contain the correct values for a drive equation. The drive " +
					"equation requires inputs to have values with the following IDs (of enumerated type " +
					"TypicalInputs found in the Drive class): STIMULUS, SYSTEM_GAIN, DRIVE_GAIN, UNIVERSAL_GAIN, DEFICIT, " +
					"BASELINE.");
	}