don't call finish until body is evaluated