Given the closed-loop control system below:

I am trying to show that the output $Y(s)$ is given by:
$$ Y(s) = \frac{G_c(s)\,G_p(s)}{1 + G_c(s)\,G_p(s)} R(s) + \frac{G_p(s)}{1 + G_c(s)\,G_p(s)} D(s) $$
I have tried using basic reduction techniques but I can't manage to get the above answer. Any help will be apreciated.
If you start at $Y(s)$ and trace back in the opposite direction you can find the following expression for it in terms of itself
$$ Y(s) = G_p(s) \Big(D(s) + G_c(s)\big(R(s) - Y(s)\big)\Big). \tag{1} $$
Expanding this equation and bringing all terms containing $Y(s)$ to one side gives
$$ Y(s) + G_p(s)\,G_c(s)\,Y(s) = G_p(s)\,D(s) + G_p(s)\,G_c(s)\,R(s). \tag{2} $$
Now by collecting the $Y(s)$ terms on the left hand side gives
$$ \big(1 + G_p(s)\,G_c(s)\big)\,Y(s) = G_p(s)\,D(s) + G_p(s)\,G_c(s)\,R(s) \tag{3} $$
and from here it should be quite straight forward how to solve for $Y(s)$.