private void registerListeners() {
        getSkinnable().widthProperty().addListener(observable -> handleControlPropertyChanged("RESIZE") );
        getSkinnable().heightProperty().addListener(observable -> handleControlPropertyChanged("RESIZE") );                
        getSkinnable().valueProperty().addListener(observable -> handleControlPropertyChanged("VALUE"));        
        getSkinnable().orientationProperty().addListener((ov, oldOrientation, newOrientation) -> {
            if (Orientation.HORIZONTAL == oldOrientation && Orientation.VERTICAL == newOrientation) {
                FXCollections.reverse(leds);    
            } else if (Orientation.VERTICAL == oldOrientation && Orientation.HORIZONTAL == newOrientation) {
                FXCollections.reverse(leds);
            }
            handleControlPropertyChanged("ORIENTATION");
        });
        getSkinnable().noOfLedsProperty().addListener(observable -> handleControlPropertyChanged("NO_OF_LEDS"));
        getSkinnable().getSections().addListener((ListChangeListener<Section>) change -> handleControlPropertyChanged("SECTIONS"));        
    }