copying is unnecessary if we only have read calls. So we can cache the values result to avoid useless allocations. Cached as the array since it does not create iterator on the enhanced for loop, But ...