Properly implement ArrayIterator to allow getting Message instance using offsetGet