more
optimized code
no need to go overboard with optimization
while
while