throws helpful errors when options are missing
adds failure messages for tests