adds specs to custom error classes
don't reveal implementation errors to api end users
improves error message
adds error message
updates error message