replace rendezvous channel with a semaphore
refactor fairalley.pml