Job::factory should throw an InvalidArgumentException, not MWException