+ More modularization
+ NMI evaluation