Broke out communication into a thread