add more tests to detect bad options
docs and throw exceptions for bad args