1) more features. 2) better numerical stability for the matrix tree theorem by using cdec logval as the template type in Eigen and also dividing the all coefficients by exp(average exponent in the adjacency matrix). 3) the reconstruction model predicts p(child, direction | head). 4) support supervised training of encoding model parameters, reconstruction model parameters, or both. 5) some refactoring.