working on async updating