public boolean pickAndExecuteAnAction() {
		if (!marketBills.isEmpty()){
			for (Market market : marketBills.keySet()){
				ProcessMarketBill(market, marketBills.get(market));
				marketBills.remove(market);
				return true;
			}
		}
		synchronized(bills){
		for(Bill iBill : bills){
			if(iBill.state == BillState.pendingCustomer){
				ComputeChange(iBill);
				return true;
			}
		}}
		synchronized(bills){
		for(Bill iBill : bills){
			if(iBill.state == BillState.pendingWaiter){
				SendBill(iBill);
				return true;
			}
		}}
		return false;
	}