@Override
    public void addTransportMarker(final String name, final Coordinates situated, final Coordinates destination,
                                   final String status) {
        Platform.runLater(new Runnable() {
            @Override
            public void run() {
                try {
                    if (situated == null && destination == null) {
                        TransportAgentUi ui = transports.get(name);
                        ui.changeStatus(status);
                        return;
                    }
                    if (nodes.containsKey(situated) && nodes.containsKey(destination)) {
                        if (transports.containsKey(name)) {
                            TransportAgentUi ui = transports.get(name);
                            ui.changeStatus(status);

                        } else {
                            TransportAgentUi ui = new TransportAgentUi(name, situated, destination, nodes.get(destination).getName());
                            ui.getTransportImage().setOnMouseClicked(new EventHandler<MouseEvent>() {
                                @Override
                                public void handle(MouseEvent paramT) {
                                    if (paramT.isShiftDown()) {
                                        handler.removeTransport(paramT.getSource());
                                    }
                                }
                            });
                            ui.changeStatus(status);
                            transports.put(name, ui);
                            boolean flag = transportGr.getChildren().add(ui.getTransportImage());
                            if (flag) {
                                transportsByImage.put(ui.getTransportImage(), ui);
                            }
                            transportGr.getChildren().add(ui.getTransportVector());
                        }
                    } else {
                        throw new Throwable("not existing node");
                    }
                } catch (Throwable t) {
                    ExceptionUtils.handleException(t);
                }
            }
        });
    }