public final SignalTower build() {
final SignalTower CONTROL = new SignalTower();
properties.forEach((key, property) -> {
if ("minSize".equals(key)) {
Dimension2D dim = ((ObjectProperty<Dimension2D>) property).get();
CONTROL.setMinSize(dim.getWidth(), dim.getHeight());
} else if ("prefSize".equals(key)) {
Dimension2D dim = ((ObjectProperty<Dimension2D>) property).get();
CONTROL.setPrefSize(dim.getWidth(), dim.getHeight());
} else if ("maxSize".equals(key)) {
Dimension2D dim = ((ObjectProperty<Dimension2D>) property).get();
CONTROL.setMaxSize(dim.getWidth(), dim.getHeight());
} else if("minWidth".equals(key)) {
CONTROL.setMinWidth(((DoubleProperty) property).get());
} else if("minHeight".equals(key)) {
CONTROL.setMinHeight(((DoubleProperty) property).get());
} else if("prefWidth".equals(key)) {