a better object repr and error message -- i guess so