udpate base function