recursion and record.