recursive ver update