adding practice code, inc. recursion stuff