docs: private void addListeners() {
  	    this.min.xProperty().addListener((observable, oldValue, nValue) -> {
  	        final double currentMin = nValue.doubleValue();
  	        final double currentMax = getMaxX();
  	        if (currentMax < currentMin) {
  	            // min-max constrain is broken
  	            maxXProperty().set(currentMin);
  	        }
  	    });
  	    this.min.yProperty().addListener((observable, oValue, nValue) -> {
  	        final double currentMin = nValue.doubleValue();
  	        final double currentMax = getMaxY();
  	        if (currentMax < currentMin) {
  	            // min-max constrain is broken
  	            maxYProperty().set(currentMin);
  	        }
  	    });
  	    this.max.xProperty().addListener((observable, oValue, nValue) -> {
  	        final double currentMax = nValue.doubleValue();
  	        final double currentMin = getMinX();
  	        if (currentMax < currentMin) {
  	            // min-max constrain is broken
  	            minXProperty().set(currentMax);
  	        }
  	    });
  	    this.max.yProperty().addListener((observable, oValue, nValue) -> {
  	        final double currentMax = nValue.doubleValue();
  	        final double currentMin = getMinY();
  	        if (currentMax < currentMin) {
  	            // min-max constrain is broken
  	            minYProperty().set(currentMax);
  	        }
  	    });
  	}