Refactoring, adding more explicit error codes, changing benchmark command line arguments.