traverse yield (from) approach adopted finally