using new reucursion in progress