User settings

This is a pull request for issues #455 and #456.

No, I think that semantically we should have `ValidationError` for argument related errors and use normal exceptions for global messages. Why we would combine this?