throw on invalid arguments
1.1.0