added ranged fors