more templete struct desc