public boolean pickAndExecuteAnAction() {
		// If there is a customer waiting
		//synchronized(Customers) {
			for (MyCustomer c : Customers) {
				if (c.state.equals(MyCustomer.State.waiting)) {
					
					// And an unoccupied table
					for (Table t : Tables) {
						if (! t.occupied) {
							
							// And at least one waiter working
							for (MyWaiter w : Waiters) {
								if (w.state.equals(MyWaiter.State.working)) {
									// Assign the customer to that table
									AssignCustomer(c, t);
									t.occupied = true;
									return true;
								}
							}
						}
						else if (t.tableNum == Tables.size() - 1) {
							TellRestaurantIsFull(c);
							return true;
						}
					}
				}
			//}
		}
	
		return false;
	}