public OpenHouse getOpenHouse() {
		OpenHouse current = current_house.get();
		if (current != null) {
			return current;
		}

		final Iterator<OpenHouse> iterator = openHouses.iterator();
		final long timeBounds = System.currentTimeMillis() - nextTimeBounds;

		while (iterator.hasNext()) {
			final OpenHouse house = iterator.next();

			if (house.getTimeAdded() < timeBounds && house.getSuccess() < timeBounds) {
				iterator.remove();
				nextTimeBounds = Random.nextInt(900000, 1200000);
			} else {
				if (!house.isSkipping()) {
					current_house.set(house);
					return house;
				}
			}
		}

		if (script.options.detectHouses.get() && System.currentTimeMillis() > nextCheckForhouses) {
			nextCheckForhouses = System.currentTimeMillis() + 600000;
			addOpenHouses();
		}

		return null;
	}