support auto update function