added async UI updates