block and delegate pass value