Allright! I like this much more! I just push your code for now, and you can have another pull request on the IllegalArgumentException rework, ok?