Designing classes for containers or collections