One characteristic of the cart (implemented as rpart in R) is that it will try all possible variables and split points until it finds the best one to use. Depending upon how the algorithm is configured, it can be, the one that achieves the highest information gain. However, in a real-world setting, very few trees are grown with unlimited boundaries. Trees are grown with constraints. Examples of constraints would be specifying the maximum number of branches that can be grown, or the minimum number of observations contained within a leaf. As a result, the predictive modeler can construct a tree to be as simple or as complex as needed.