add va_macro