template-struct updated