Recursion up to reverse()