use delegating yield