use yield*