first pass at human-readable error messages