final version of recursion assignment