private function getFactorsFromSource( $source, $variableSet, $evaluationResult, $log, &$numerators, &$denominators, &$unitRef = null )
	{
		$sourceFact = $variableSet->getSourceFactWithErrorLogging( $source, $evaluationResult, ASPECT_UNIT, $log );

		// If the rule is to augment the existing values fill the numerators and denominator arrays
		$unitRef = FactValues::getUnitRef( $sourceFact );
		if (! $unitRef ) return;

		$unit = $variableSet->xbrlInstance->getUnit( $unitRef );

		if ( is_array( $unit ) )
		{
			if ( isset( $unit['measures'] ) )
			{
				$numerators = array_merge( $numerators, $unit['measures'] );
			}

			if ( isset( $unit['divide'] ) )
			{
				if ( $unit['divide']['numerators'] )
				{
					$numerators = array_merge( $numerators, $unit['divide']['numerators'] );
				}

				if ( $unit['divide']['denominators'] )
				{
					$denominators = array_merge( $denominators, $unit['divide']['denominators'] );
				}
			}
		}
		else
		{
			$numerators[] = $unit;
		}
	}