Add recursive method