update basic function