ArrayIterator only uses public variables if an object is passed