many changes

cryptic error messages are the worst.