public boolean pickAndExecuteAnAction() {
		
		if (requestHousing) {
			requestHousing = false;
			RequestHousing();
			return true;
		}

		if (mHouse != null) {
			if(!mBills.isEmpty()){
				synchronized (mBills) {
					for (Bill b : mBills) {
						if (b.mStatus == EnumBillState.Pending) {
							PayBill(b);
							return true;
						}
					}
				}
			}
			
			if (mHungry) {
				mHungry = false;
				EatAtHome();
				return true;
			}

			if (mTimeToMaintain) {
				mTimeToMaintain = false;
				Maintain();
				return true;
			}
		}
		
		return false;
	}