@Override
  public void start(Stage stage) {
    final Parameters params = getParameters();
    final List<String> parameters = params.getRaw();

    if (parameters.size() != 1) {
      throw new RuntimeException(
          "Bad command line arguments, expected exactly one argument (XML file to load)");
    }

    final String fileToLoad = parameters.get(0);

    final ProfileContainer profiles;
    try {
      FileInputStream in = new FileInputStream(fileToLoad);
      profiles = new XMLSerializer().load(in);
    } catch (IOException e) {
      throw new RuntimeException(e);
    }

    final TreeTableView<ITreeNode> treeTable = createTreeTableView(profiles);

    treeTable.setPrefSize(2000, 2000);
    stage.setTitle("Profiling results: " + fileToLoad);

    stage.setResizable(true);

    final Scene scene = new Scene(new Group(), 1000, 1000);

    final Group sceneRoot = (Group) scene.getRoot();
    sceneRoot.setAutoSizeChildren(true);

    sceneRoot.getChildren().add(treeTable);

    stage.setScene(scene);
    stage.show();
  }