What is 'names()' supposed to return?
The description of the names() method is kind of vague to me. It is supposed to return names that are connected - but by construction every name that is ever entered into the Friend class is connected. So, in essence, it is supposed to return each available name?