i don't like functions with 10 params, all optional, and meant to be used in different combinations (epic had TONS of this). the fact that the required params vary based on context still sucks, but this is a bit of a jack-of-all-trades class, and kwargs is at least honest about it. .