fun with generics, add support for NavigableSet, Map, NavigableMap
equals, contains, indexOf should use Object and not T