add template instantiate interface