add size()
add maxDepth()