added array iterator