use variadic function opts