split update into check and refresh