private void afterChange(MenPoint whereChangeOccured) {

        boolean newHorizontal = whereChangeOccured.isHorizontalMill() && !this.horizontalMillDetection;
        boolean newVertical = whereChangeOccured.isVerticalMill() && !this.verticalMillDetection;

        if (this.newMillsDetectionListener != null && (newHorizontal || newVertical)) {
            this.newMillsDetectionListener.onNewMills(newVertical, newHorizontal, whereChangeOccured);
        }

        if (this.blacksMensRemovedCount() >= (STARTUP_MEN_AMOUNT - 2) && this.endOfGameDetectionListener != null) {
            this.endOfGameDetectionListener.endOfGame(MenColor.White);
        } else if (this.whitesMensRemovedCount() >= (STARTUP_MEN_AMOUNT - 2) && this.endOfGameDetectionListener != null) {
            this.endOfGameDetectionListener.endOfGame(MenColor.Black);
        }
    }