improved YieldCollection