public boolean pickAndExecuteAnAction() {
		
		synchronized(marketbills) {
			for (MyMarketBill mb : marketbills) {
				if (mb.state == mbState.unpaid) {
					payMarketBill(mb);
				}
			}
		}
		
		synchronized(uncomputedChecks) {
			for(Check c: uncomputedChecks) {
				if(c.state == CheckState.uncomputed) {
					c.state = CheckState.unpaid;
					computeCheck(c);
					return true;
				}
			}
		}


		synchronized(computedChecks) {
			for(MyCheck c: computedChecks) {
				if(c.check.state == Check.CheckState.paid) {
					processCheck(c);
					return true;
				}
			}
		}
		
		if(person.cityData.hour >= restPanel.CLOSINGTIME && !restPanel.isOpen() 
				&& restPanel.justCashier()) {
			LeaveRestaurant();
			return true;
		}
		
		return false;

	}