existing tests rely on checking for Exceptions on invalid arguments, we should spec this instead an improve the testing framework.