move common params into their own structs