Refactor a spec
Raise comprehensive exceptions