Refactor.
Merge remote-tracking branch 'origin/branch_snowzjx' into branch_xc
amend some mystery methods
Merge pull request #15 from snowzjx/branch_xc

Branch xc