template class should include both declaration and
definition in one single file.