Person = Struct.new(:id, :first_name, :last_name)
a = [Person.new(1,'Alice', 'Smith'), 
     Person.new(2, 'Bob', 'Smith'),
     Person.new(3,'Carol', 'Smith')]
p m = a.group_by(&:id)