private void fadeBack() {
        FadeTransition fadeInfoTextOut = new FadeTransition(Duration.millis(425), infoText);
        fadeInfoTextOut.setFromValue(1.0);
        fadeInfoTextOut.setToValue(0.0);
        
        FadeTransition fadeValueOut = new FadeTransition(Duration.millis(425), value);
        fadeValueOut.setFromValue(1.0);
        fadeValueOut.setToValue(0.0);

        PauseTransition pause = new PauseTransition(Duration.millis(50));

        FadeTransition fadeInfoTextIn = new FadeTransition(Duration.millis(425), infoText);
        fadeInfoTextIn.setFromValue(0.0);
        fadeInfoTextIn.setToValue(1.0);
        
        FadeTransition fadeValueIn = new FadeTransition(Duration.millis(425), value);
        fadeValueIn.setFromValue(0.0);
        fadeValueIn.setToValue(1.0);                
        
        ParallelTransition parallelIn = new ParallelTransition(fadeInfoTextIn, fadeValueIn);

        ParallelTransition parallelOut = new ParallelTransition(fadeInfoTextOut, fadeValueOut);
        parallelOut.setOnFinished(event -> {
            double currentValue = (valueIndicatorRotate.getAngle() + getSkinnable().getStartAngle() - 180) / angleStep + getSkinnable().getMinValue();
            value.setText(String.format(Locale.US, "%." + getSkinnable().getDecimals() + "f", currentValue));
            value.setTranslateX((size - value.getLayoutBounds().getWidth()) * 0.5);
            if (getSkinnable().getTarget() < getSkinnable().getValue()) {
                getSkinnable().setInfoText("COOLING");
            } else if (getSkinnable().getTarget() > getSkinnable().getValue()) {
                getSkinnable().setInfoText("HEATING");
            }
            
            resizeText();
            drawTickMarks(ticks);
            userAction = false;
        });

        SequentialTransition sequence = new SequentialTransition(parallelOut, pause, parallelIn);
        sequence.play();
    }