1. Join 2. Condition2 impl  3. Communicator (incomplete)