Patch Set 1: Looks good to me, but someone else must approve

I like that proposal. To be honest: I don't care in which package the exceptions are located and whether are all in the same package or not. But: I would like to have a clean package containing only Commands so that people can easily see what commands are available. Currently it's hard to tell what commands we have because the exceptions are in the same package. Refactoring all exceptions away in a subpackage helps a lot.