Split the head file into .h&.cpp files and add the template calss instantiation .cpp file