Use yield instead of block.call