The regions Array is exposed in getRegions(). The user may have written code that uses the enhanced for loop. The iterator returned by Array is reused to avoid GC and cannot be used nested, so will crash if createSprite, etc methods are called from within the user's loop if the enhanced for loop is in used internally. I would prefer to keep the old for loops. The rest of the changes are fine.