fewer loops