add helpful messages to the exception, highlighting the violated expectation
make tests pass, and start adding tests for new violation messages