fix UI threading bugs