add option to pass an arg to the riif block; uses yield self where possible