use block_given? to before yield.