update function PRIM