tell the user why objects are invalid

this is super hazy and possibly very complicated