simpler and better error messages