update function and manual checking