private void checkNewHome(Allocation newHomeBudget) {
		if(newHomeBudget.building == null){	//we live in a freaking villa. Refund that shiznit.
			income.insert(newHomeBudget.resources);
			newHomeBudget.resources.extract(newHomeBudget.resources);
			return;
		}
		double budget = newHomeBudget.resources.getValue();
		if (budget + 1 <= budget){
			newHomeBudget.resources.cleanBadValues();
			budget = newHomeBudget.resources.getValue();
		}
		boolean bought = false;
		for(Listing listing:City.listings){
			if (listing.price > budget) break;	//cannot afford.
			if(Home.getRank(listing.property) >= (Home.getRank((Home) newHomeBudget.building))){
				listing.buy(newHomeBudget.resources.worthAtLeast(listing.price), this);
				bought = true;
				break;
			}
		}
		
		if(newHomeBudget.hasEnough()&&!bought){
			City.places.add(newHomeBudget.building);
			realestate.add((Home) newHomeBudget.building);
			newHomeBudget.building = null;	//make sure this thing doesn't get used elsewhere.
		}
	}