remember to add CarJob; generalize BinarySplitLearner to allow different predicate types; clean up tree output a bit