Use ArrayIterator & IteratorAggregate interface
Implmenet Countable interface
Add more test versions