change multiple arguments to a struct

make the interface stable