As was discussed in MultiCaster, it is very useful (especially in distributed applications) to organize agents in "groups". From DougLea's paper of the same name: ''An object-oriented application may consist of a sea of objects; perhaps thousands or millions of objects. Subsets of these objects often possess discernible structure that is not well-captured by common object- and class-based concepts and notations... ...a group is a special kind of set, consisting of one or more objects ( members) bearing a common abstract relation, common external access policies, common connectivity, and common internal policies.'' You can read the paper here: http://gee.cs.oswego.edu/dl/groups/groups.html Some practical examples of "objects in groups": * GroupCommunicationSystems, a fault-tolerance model implemented by toolkits such as ISIS, Horus, and iBus. * The UbiquitousComputing vision of many different agents communicating world-wide in a self organizing manner. See http://www.distributedcoalition.org * LindaTupleSpaces, or JavaSpaces, for instance, could be considered minimalist object groups (in concept). This was one of those "aha!" concepts that opened my mind to the great possibilities of widely distributed computing. --StuCharlton