Using identical instead of equal
Added caching for all properties
Fixed conflict with IteratorAggregate interface