@Override
	public void run() {
		while (true) {
			try {
				Thread.sleep(300);
			} catch (InterruptedException e) {
				LOG.info(this.toString() + " was interrupted");
			}

			Integer smallestValue = philosophers.get(0).getMealsAmount();
			for (Philosopher p : philosophers) {
				if(p.getMealsAmount() < smallestValue) {
					smallestValue = p.getMealsAmount();
				}
			}

			for (Philosopher p : philosophers) {
				if (smallestValue + difference < p.getMealsAmount()) {
					p.banFor(banTime * (p.getMealsAmount() - (smallestValue + difference)));
				}
			}
		}
	}