https://medium.com/python-in-plain-english/building-a-messaging-app-with-python-sockets-and-threads-1c110fc1c8c8