The default constructors are now used as template specializations by postponing them below the template definition