Interfaces are needed for developers to treat their own types as collections. For a large set of the runtime’s users, generic implementations are extremely valuable. The runtime will provide wrapper classes to work over top of the interfaces thus allowing the collection implementer to implement the smallest number of methods possible and still allow their users to get a very rich experience when using them. Providing a rich set of functionality in these classes makes it easier for the RAD developer to get the functionality she needs quickly.