communicator: started generalization for threads