rename
optimized loop