moving away from va_arg compile API