Allow users to specify *args and **kw

Required a bit of refactoring in terms of how
parameter specifiers are passed around.