more practices in recursion