refactor and comment
fix some bug introduced by renaming
new print option
fix prefix tag