docs: protected Node findWorstOption() {
  		Stack<Node> stack = new Stack<Node>();
  		stack.add(treeRoot);
  
  		double ratio = Double.MIN_VALUE;
  		Node out = null;
  
  		while (!stack.empty()) {
  			Node node = stack.pop();
  			if (node.getParent() instanceof OptionNode) {
  				OptionNode myParent = (OptionNode) node.getParent();
  				int nodeIndex = myParent.getChildIndex(node);
  				double nodeRatio = myParent.getFFRatio(nodeIndex); 
  
  				if (nodeRatio > ratio) {
  					ratio = nodeRatio;
  					out = node;
  				}
  			}
  			if (node instanceof InnerNode) {
  				for (Node child : ((InnerNode) node).children) {
  					stack.add(child);
  				}
  			}
  		}
  
  		return out;
  	}