use yield* next instead of yield next