Add recursive solution