add singleton template class