added variadic