Just a note: The generic type names don't have to be a single, uppercase letter. They can just as easily be Element, Key, Value, AnythingElseThatMakesSense. When I started using them in my own classes, I didn't know what letters I could use...