Some template write by Amos zhu