fixup build

the previous version only worked in msvc which has a nonstandard two phase lookup implementaion.
fixup build

we have to use this-> in templatd classes the derive from other template
classes
fixup build

we need to put the explicit instantiation after the definition