with a 2nd thread for reading messages