more informative error objects.

and more docs