`ArgumentError` makes sense. You can even do this check in the `initialize` method instead of here, probably better.

I think that responding to `call` is enough, like the scopes check.