switching from yield to instance_eval