This arg and kwarg logic is duplicated below. So maybe it should be a method on `DecoratorBase`.