decision tree (updated for pruning)