Container object that contains objects that can send messages to one another. This can be used as a replacement to protocols.