def get_unit(key)
    return 0.0 if source_factories.empty?
    values = source_factories.map{|factory| factory.get_unit(key)}
    average = values.inject(0.0){|sum, value| sum += value} / source_factories.size
  end
def get_unit(key)
    return 0.0 if source_factories.empty?
    values = source_factories.map{|factory| factory.get_unit(key)}
    average = values.inject(0.0){|sum, value| sum += value} / source_factories.size
  end
Takes a hash with these keys and defaults:
  :source_factories => []
Calls #get_unit(key) on each source factory and averages results.