enhance locking in communicator