Added new requirement of recursion