Only instance_eval if a block was given
Extract common functionality
Improve documentation