Used Yield instead of block.call