async updating