implement class template instantiation (wip)