update recursion3