trying to reduce template class count