use template by pexcn