add variadic params support