增加template功能，close #8