now exits on UI thread