only update the UI periodically