Mihir | Making recursion TCO