class BinaryTimeTree {

    public int maxValuesPerNodeInteral(BTreeNode<E> node, int maxValues)
    {
        if (node == null)
        {
            return 0;
        }

        int max = maxValues;
        int size = node.getValues().size();
        if (size > max)
        {
            max = size;
        }

        for (BTreeNode<E> subNode : node.getSubNodes())
        {
            if (subNode != null)
            {
                size = maxValuesPerNodeInteral(subNode, max);
            }
            if (size > max)
            {
                max = size;
            }
        }
        return max;
    }

    public  BinaryTimeTree();
    public  BinaryTimeTree(int maxValuesPerNode, int maxDepth);

}