The objective of the revision of the code is to allow given multiple alignments of protein data and an initial tree topology, I can use HMC to update and estimate the tree topology, rate matrix and corresponding parameters . The main function is written in SimpleProteinModel.java.