recursion notes