You may want the collection from which you build a menu to be a Set because you don't want to have repeated entries in a menu, and you'd want nil to be there if your field can be empty. When the menu items are automatically generated, it'd be nice to be able to do Whatever buildMenuFrom: (myCollection asSet add: nil; yourself).