a bunch of parameters and stuff