added some template c++