// Methods
  public void dehoist() {
    // Shorthand
    JoeTree tree = hoistedNode.getTree();
    tree.setRootNodeCommentState(oldTreeCommentState);

    hoistedNode.setHoisted(false);

    // Prune things
    tree.setRootNode(oldNodeSet);
    tree.getVisibleNodes().clear();
    hoistedNodeParent.insertChild(hoistedNode, hoistedNodeIndex);
    hoistedNode.setDepthRecursively(hoistedNodeDepth);
    for (int i = 0; i < oldNodeSet.numOfChildren(); i++) {
      Node node = oldNodeSet.getChild(i);
      tree.insertNode(node);
    }

    return;
  }
  public void hoist() {

    // Shorthand
    JoeTree tree = hoistedNode.getTree();
    tree.setRootNodeCommentState(newTreeCommentState);

    hoistedNode.setHoisted(true);

    // Prune things
    hoistedNode.getParent().removeChild(hoistedNode);
    hoistedNode.setDepthRecursively(-1);
    tree.setRootNode(hoistedNode);
    tree.getVisibleNodes().clear();
    for (int i = 0; i < hoistedNode.numOfChildren(); i++) {
      Node node = hoistedNode.getChild(i);
      tree.insertNode(node);
    }

    return;
  }