Abstract template class.