more of a layout improvement, to avoid any code duplication. The mechanics remain the same - write an explicit specialisation - trigger template intantiation within a dedicated translation unit
everything works now after the switch. BUT this solution is ugly, we need to trigger template instantiation explicitly