Determining Spot Rates

A three-year, 4%, par-value bond with annual coupons sells for $990$, a two-year, $1000$, 3% bond with annual coupons sells for $988$, and a one-year, zero-coupon, $1000$ bond sells for $974$. Determine the spot rates $r_1$, $r_2$ and $r_3$.

This comes from Mathematical Interest Theory textbook section 8.3 #2. I understand how to compute similar problems, however I am unsure how to solve this given that the bonds have annual coupons(not zero coupon bonds). Any help would be appreciated thank you!

For the one year bond we have: $$974=\frac{1000}{1+r_1}\qquad\Longrightarrow\qquad r_1=\frac{1000}{974}-1\approx 2.66940\%$$ For the two years bond we have the coupon $3\%\times 1000=30$ and $$988=\frac{30}{1+r_1}+\frac{1030}{(1+r_2)^2}$$ Observing that $\frac{1}{1+r_1}=\frac{974}{1000}=0.974$ we have $$988=\underbrace{30\times 0.974}_{29.22}+\frac{1030}{(1+r_2)^2}\qquad\Longrightarrow\qquad r_2=\left(\frac{1030}{958.78}\right)^{1/2}-1\approx 3.64757\%$$ Can you now find $r_3$?

$990=\underbrace{\frac{40}{1+r_1}}_{40\times 0.974}+\underbrace{\frac{40}{(1+r_2)^2}}_{40\times\frac{958.78}{1030}}+\frac{1040}{(1+r_3)^3} \qquad\Longrightarrow\qquad r_3\approx 4.4062\%$

$\frac {40}{1+r_1} + \frac {40}{(1+r_2)^2} + \frac {1040}{(1+r_3)^3} = 990$
Let $y_1,y_2, y_3 = \frac {1}{1+r_1}, \frac {1}{(1+r_2)^2},\frac {1}{(1+r_3)^3}$
$40y_1 + 40y_2 + 1040y_3= 990\\ 30y_1 + 30y_2 + 1030y = 988\\ 1000y_1 = 974$
Now you have a system of linear equations, that should be easy enough to solve for $y_1,y_2, y_3.$ From there you can calculate $r_1,r_2, r_3$