Hide the fact that you using a S''''''uperHashedArrayList by exposing the only the List interface. Don't sweat the fact the somebody could find out it's a S''''''uperHashedArrayList and use it as such. If you didn't expose it, your freed from your obligation to support it. Likewise, if you absolutely 'know' the List that object returns is really a S''''''uperHashedArrayList, be careful in how you use that information; the day may come when it becomes a Q''''''uantomTunneledHyperArrayList. If they didn't expose it, you've just taken on the responsibility of supporting it. --WilliamUnderwood