listen back to main thread