`DecisionTree` class and object should be reorganized and separated into `DecisionTreeModel` and `DecisionTreeAlgorithm`, with a `Strategy` and root `Node` as part of `Model` and `train` as part of the `Algorithm`.