MAINT: instead of passing a half-dozen parameters repeatedly among functions, aggregate these parameters into an object