Moved behavior into a "Tree" object.