do recursion in Model.update