NOT WORKING (or compiling) at the moment, messing around with C++ partially specialized templates, trying different ideas