I favor moving a dict around when there are a lot of params to give a method, but if we are talking about just two params... then I will always prefer handling it like a regular param. To be clear, what I mean is changing this:

```python
def a(*args, **kwargs):
  param = kwargs.get("someparam", None)
```

for

```python
def a(param=None):
  param = param  # redundant in this case
```

But this is a matter of taste/preference I guess, and we need to focus on functionality right now mainly.

Another case where I would use *args **kwargs is when subclassing something that we aren't really sure how many parameter it can hold, so we need something explicitly flexible.