job interacts with UI thread