First version of the recursive update program