made factor iterable both by values and assignment-value pairs