use yield* for speed
2.4.0